我想将伟大的Bottleweb框架嵌入到一个小应用程序中(第一个目标是Windows操作系统)。这个应用程序启动瓶子网络服务器多亏了子流程模块。在
import subprocess
p = subprocess.Popen('python websrv.py')
瓶子应用程序非常简单
^{pr2}$它将默认的web服务器启动到Windows控制台中。在
除了我必须按Ctrl-Web服务器外,似乎所有的瓶子都关闭了。我希望主应用程序在关闭时终止web服务器。我找不到这样做的方法(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
关闭相同。在从0.8.1开始,重新加载服务器足够智能,可以清理孤立进程。现在有几种方法可以终止服务器:
Ctrl-C
或发送SIGINT
到父进程。(推荐)如果瓶子处于重新装载模式,终止过程似乎不起作用。在这种情况下,它启动它自己的一个子进程。在
如果reload设置为False,则终止似乎可以正常工作。在
相关问题 更多 >
编程相关推荐