42

現在、subprocess.call()を使用して別のプログラムを呼び出していますが、そのプログラムが終了するまで実行中のスレッドをブロックします。戻るのを待たずにそのプログラムを簡単に起動する方法はありますか?

4

2 に答える 2

67

subprocess.Popenの代わりに使用subprocess.call

process = subprocess.Popen(['foo', '-b', 'bar'])

subprocess.callプロセスが終了するのを待つためのsubprocess.Popen呼び出しのラッパーです。subprocess.popenとsubprocess.runの違いは何ですかcommunicateも参照してください。

于 2012-06-10T02:23:40.433 に答える
0

答えは「close_fds」フラグを使用することではありませんか?

subprocess.Popen(cmd, stdout=None, stderr=None, stdin=None, close_fds=True)
于 2021-07-06T13:20:50.627 に答える