为了测试目的,我需要经常从我的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有什么特别的魔力吗?
答案 0 :(得分:0)
您可以使用setsid
。使用此代码
process = Popen(['setsid', '/usr/sbin/nginx', '-c', '/etc/nginx/nginx.conf'])
man setsid
了解更多信息