2011-07-19 10 views
18

Pythonでは、新しいプロセスを呼び出す方法がありますか?標準的なIOストリームのような同じコンテキストを渡し、現在のプロセスを閉じて、呼び出されたプロセスを制御しますか?これは効果的にプロセスを「置き換える」でしょう。現在のプロセスをサブプロセスの呼び出しに置き換えますか?

私は繰り返したい行動を持つプログラムを持っています。しかし、サードパーティ製のライブラリを使用しています。そのライブラリによって呼び出されたスレッドを真にkillする唯一の方法は、Pythonのプロセスを終了させることです。

さらに、メモリを管理するのに役立つようです。

答えて

22

あなたはos.execv()に興味がある可能性があり、友人:

これらの関数は、現在のすべての のプロセスを置き換え、新しいプログラムを実行します。彼らは戻ってこない。 Unixでは、新しい実行可能ファイルは が現在のプロセスにロードされ、 呼び出し元と同じプロセスIDを持ちます。エラーはOSError例外として報告されます。

+7

'os.execvp( 'python.exe'、['python.exe'、 'arg1'、 'arg2'])'のように見えることに注意してください。やや直感的な '' python.exe ''が2回現れることに注意してください。詳細については、[この回答](http://stackoverflow.com/a/18552137/1143274)を参照してください。 –

関連する問題