我想嵌入伟大的Bottle Web 框架转化为小型应用程序(第一个目标是 Windows 操作系统)。由于子流程模块,该应用程序启动了 Bottle Web 服务器。
import subprocess
p = subprocess.Popen('python websrv.py')
Bottle 应用程序非常简单
@route("/")
def index():
return template('index')
run(reloader=True)
它将默认的网络服务器启动到 Windows 控制台。
一切似乎都很好,除了我必须按 Ctrl-C 才能关闭 Bottle 网络服务器。我希望主应用程序在关闭时终止网络服务器。我找不到办法做到这一点(不幸的是,p.terminate() 在这种情况下不起作用)
有什么想法吗?
提前致谢
最佳答案
关闭重载服务器有两种方法:
1) 您终止 p(使用 os.kill(p.pid)
或 p.terminate()
),然后更改 'websrv.py 的修改时间' (os.utime('websrv.py')
) 触发子进程自动关闭。
2) 使用 os.kill(p.pid, signal.SIGINT) 终止 p,这与 Ctrl-C
关闭相同。
关于python - 从子进程启动时如何停止 Bottle Web 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2643512/