从python脚本启动NGINX

时间:2018-02-26 14:55:00

标签: python nginx subprocess

为了测试目的,我需要经常从我的python脚本启动/停止nginx。

当我这样做时

from subprocess import Popen
process = Popen(['/usr/sbin/nginx', '-c', '/etc/nginx/nginx.conf'])
print process.pid    # prints 21621

结果process.pid等于某个pid。

但是,当我查看ps ax | grep nginx输出时,该pid是僵尸,然后消失。但是有一个nginx主进程,其pid比原始pid大1。

21621 pts/0    Z+     0:00 [nginx] <defunct>
21622 ?        Ss     0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
21623 ?        S      0:00 nginx: worker process
21624 ?        S      0:00 nginx: worker process

从python脚本启动nginx有什么特别的魔力吗?

1 个答案:

答案 0 :(得分:0)

您可以使用setsid。使用此代码

process = Popen(['setsid', '/usr/sbin/nginx', '-c', '/etc/nginx/nginx.conf'])

man setsid了解更多信息