バックグラウンドで外部スクリプトを起動および実行する方法は? [複製]
-
05-07-2019 - |
質問
この質問にはすでに回答があります:
これら2つの方法を試しました:
os.system("python test.py")
subprocess.Popen("python test.py", shell=True)
どちらのアプローチもtest.pyが終了してメインプロセスをブロックするまで待つ必要があります。 「nohup」を知っています仕事をすることができます。 test.pyまたは他のシェルスクリプトを起動してバックグラウンドで実行したままにするPythonの方法はありますか?
test.pyが次のようなものだとします:
for i in range(0, 1000000):
print i
os.system()またはsubprocess.Popen()は両方とも、1000000行の出力が表示されるまでメインプログラムをブロックします。私が欲しいのは、test.pyをサイレントに実行させ、メインプログラムの出力のみを表示させることです。 test.pyの実行中にメインプログラムが停止する場合があります。
解決
subprocess.Popen([" python&quot ;," test.py"])
動作するはずです。
メインスクリプトが終了しても、ジョブが終了する可能性があることに注意してください。この場合、 subprocess.Popen([" nohup&quot ;," python&quot ;," test.py"])
他のヒント
os.spawnlp(os.P_NOWAIT, "path_to_test.py", "test.py")
所属していません StackOverflow