check.py
的内容:
from multiprocessing import Process
import time
import sys
def slp():
time.sleep(30)
f=open("yeah.txt","w")
f.close()
if __name__=="__main__" :
x=Process(target=slp)
x.start()
sys.exit()
在 Windows 7 中,从 cmd
中,如果我调用 python check.py
,它不会立即退出,而是等待 30 秒。如果我杀死 cmd
, child 也会死——不会创建 "yeah.txt"
。
如何确保即使父进程被杀死,子进程仍继续运行,并且父进程不会等待子进程结束?
最佳答案
您似乎想要将脚本作为后台进程运行。解决方案How to start a background process in Python?应该这样做,您必须指定一些命令行参数来告诉您的脚本进入 slp
而不是生成一个新进程。
关于Python解释器等待子进程死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6461689/