我希望我的python作业启动另一个进程并退出,同时让孩子继续运行。
当我使用
启动子进程时Popen([sys.executable,"foo","bar"])
(作为recommended而不是spawn
),当父级退出时,孩子会死亡(上述Popen
是父母最后做的事情。)
当然,这可以使用nohup
补救:
with open("/dev/null","w") as fd:
Popen(["nohup",sys.executable,"foo","bar"],stdout=fd)
(我必须将输出重定向到/dev/null
以阻止nohup
创建文件nohup.out
并在stdout
上宣布该不当行为。
有没有更优雅的 / pythonic方式来解决这个问题?
我也尝试os.fork
+ signal.signal(signal.SIGHUP,signal.SIG_IGN)
,当父母退出时,孩子仍然死亡。