How to launch and run external script in background? [duplicate]

匿名 (未验证) 提交于 2019-12-03 01:59:02

问题:

This question already has an answer here:

I tried these two methods:

os.system("python test.py")  subprocess.Popen("python test.py", shell=True) 

Both approaches need to wait until test.py finishes which blocks main process. I know "nohup" can do the job. Is there a Python way to launch test.py or any other shell scripts and leave it running in background?

Suppose test.py is like this:

for i in range(0, 1000000):     print i 

Both os.system() or subprocess.Popen() will block main program until 1000000 lines of output displayed. What I want is let test.py runs silently and display main program output only. Main program may quie while test.py is still running.

回答1:

subprocess.Popen(["python", "test.py"]) should work.

Note that the job might still die when your main script exits. In this case, try subprocess.Popen(["nohup", "python", "test.py"])



回答2:

os.spawnlp(os.P_NOWAIT, "path_to_test.py", "test.py") 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!