![](/img/trans.png)
[英]Kill python script launched by a subprocess called by another script (Windows)
[英]Airflow webserver launched via subprocess not dying on kill
使用Python 3.6.1。 我模拟发射的airflow webserver
从命令使用过程subprocess.Popen
。
做完一些事情之后,我稍后将其杀死(或终止)。
webserver_process = subprocess.Popen(["airflow", "webserver"])
webserver_process.kill()
我的理解是,这将向网络服务器发送一个SIGKILL
,其基础gunicorn
应立即关闭。
但是,当我导航到http:// localhost:8080时,我看到Web服务器仍在运行。 类似地,当我然后运行sudo netstat -nlp|grep 8080
(我正在使用UNIX,并且airflow webserver
在端口8080上启动)时,我发现:
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
只有当我使用sudo fuser -k 8080/tcp
手动终止该进程时,它才最终消失。
这里发生了什么?
通过返回的Python进程airflow webserver
的命令实际上是调用subprocess.Popen
开始gunicorn
在子进程。
您可以通过调用webserver_process.pid进行测试,您会注意到它是与gunicorn主进程pid不同的pid。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.