如何在后台启动并运行外部脚本?
我试了这两种方法:
os.system("python test.py")
subprocess.Popen("python test.py", shell=True)
这两种方法都需要等到test.py执行完毕,这样就会阻塞主程序。我知道“nohup”可以解决这个问题。有没有什么Python的方法可以启动test.py或者其他的脚本,并让它在后台运行呢?
假设test.py是这样的:
for i in range(0, 1000000):
print i
无论是使用os.system()还是subprocess.Popen(),主程序都会被阻塞,直到显示出1000000行的输出。我想要的是让test.py在后台静默运行,只显示主程序的输出。主程序可以在test.py还在运行的时候就先结束。
2 个回答
1
os.spawnlp(os.P_NOWAIT, "path_to_test.py", "test.py")
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。
39
使用 subprocess.Popen(["python", "test.py"])
这个命令应该可以正常运行。
不过要注意,如果你的主程序结束了,这个任务可能也会停止。为了避免这种情况,可以试试 subprocess.Popen(["nohup", "python", "test.py"])
这个命令。