!!!子流程对我不起作用
我想将python脚本daemon.py
作为守护进程运行。需要从另一个名为starter.py
的脚本激活此脚本
要求:
starter.py
不应等待daemon.py
完成。在starter.py
中使用fork()
可以满足此要求李>import os
pid = os.fork()
if pid == 0:
os.system("python daemon.py")
这满足了第一个要求,但仍然面临一个问题,这就引出了第二个要求
daemon.py
即使我退出{fork
无法满足此要求李>然后我尝试使用subprocess
,正如这里的答案所建议的Python spawn off a child subprocess, detach, and exit
import subprocess
subprocess.Popen(['python', 'daemon.py'],
cwd="/",
stdout=None,
stderr=None)
这也有同样的问题。当我退出starter.py
时,daemon.py
也会停止。
我正在daemon.py
上使用SIGTERM
事件侦听器。它正在收听来自starter.py
的事件。因此,问题就来了
daemon.py
看起来像这样
import sys
import signal
def handler():
other_business()
sys.exit(0)
while True:
business()
signal.signal(signal.SIGTERM, handler)
try:
time.sleep(1)
except KeyboardInterrupt:
exit()
PYTHON版本:3.5.2
如何完全独立于starter.py
运行daemon.py
目前没有回答
相关问题 更多 >
编程相关推荐