我正在尝试打开一个子进程,但让它与调用它的父脚本分离。现在,如果我调用 subprocess.popen 并且父脚本崩溃,子进程也会死掉。
我知道有几个适用于 Windows 的选项,但我还没有找到适用于 *nix 的任何选项。
我也不需要使用子进程来调用它。我所需要的只是能够调用另一个分离的进程并获取 pid。
最佳答案
对于 Linux,这根本不是问题。只是 Popen()
。例如,这里有一个小dying_demon.py
#!/usr/bin/python -u
from time import sleep
from subprocess import Popen
print Popen(["python", "-u", "child.py"]).pid
i = 0
while True:
i += 1
print "demon: %d" % i
sleep(1)
if i == 3:
i = hurz # exception
衍生出一个 child.py
#!/usr/bin/python -u
from time import sleep
i = 0
while True:
i += 1
print "child: %d" % i
sleep(1)
if i == 20:
break
child 继续数数(向控制台),而恶魔正在异常死亡。
关于python - subprocess.popen 与 master 分离 (Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31482397/