如何在后台启动和运行外部脚本?

时间:2009-10-22 07:15:13

标签: python background-process external-process

我试过这两种方法:

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仍在运行时,主程序可能会安静。

2 个答案:

答案 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")