我想要:
我玩过subprocess.Popen,os.exec,os.spawn,os.system ...没有成功。
解决该问题的另一种方法:如果有人杀死myexe.exe(arg0)的“进程树”,如何保护myexe.exe(arg1)?
编辑:相同的问题(无答案)HERE
编辑:以下命令不能保证子流程的独立性
subprocess.Popen(["myexe.exe",arg[1]],creationflags = DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP,close_fds = True)
最佳答案
要启动在父进程退出Windows后可以继续运行的子进程,请执行以下操作:
from subprocess import Popen, PIPE
CREATE_NEW_PROCESS_GROUP = 0x00000200
DETACHED_PROCESS = 0x00000008
p = Popen(["myexe.exe", "arg1"], stdin=PIPE, stdout=PIPE, stderr=PIPE,
creationflags=DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP)
print(p.pid)
Windows进程创建标志为here
A more portable version is here。