繁体   English   中英

通过子进程启动的气流Web服务器不会死机

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM