我试过这两种方法:
os.system("python test.py")
subprocess.Popen("python test.py", shell=True)
这两种方法都需要等到test.py完成才能阻止主进程。我知道“nohup”可以胜任这项工作。是否有Python方法来启动test.py或任何其他shell脚本并让它在后台运行?
假设test.py是这样的:
for i in range(0, 1000000):
print i
os.system()或subprocess.Popen()都将阻止主程序,直到显示1000000行输出。我想要的是让test.py以静默方式运行并仅显示主程序输出。当test.py仍在运行时,主程序可能会安静。
答案 0 :(得分:34)
subprocess.Popen(["python", "test.py"])
should work。
请注意,当主脚本退出时,作业可能仍会死亡。在这种情况下,请尝试subprocess.Popen(["nohup", "python", "test.py"])
答案 1 :(得分:1)
os.spawnlp(os.P_NOWAIT, "path_to_test.py", "test.py")