私は(Popenを使って)サブプロセスを起動するpythonプログラムを書いています。 私はサブプロセスのstdoutを読み込み、いくつかのフィルタリングを行い、メインプロセスの stdoutに書き込みます。pythonプロセスが終了したときにサブプロセスを終了しますか?
メインプロセス(cntl-C)を終了すると、サブプロセスは実行を継続します。 どのようにしてサブプロセスも強制終了できますか?サブプロセスは長い時間を実行するのと同じです。
コンテキスト: 一度に1つのサブプロセスしか起動しません。標準出力をフィルタリングしています。 ユーザは、何かを試すために中断することを決定するかもしれません。
私はPythonには新しく、ウィンドウを使用していますので、優しくしてください。
Popen.wait()上のPythonドキュメントからの警告: 子プロセスがブロックを待っているように、標準出力や標準エラー出力パイプに十分な出力を生成した場合にデッドロックされます。この警告例えば
OSパイプバッファがより多くのデータを受け入れるためです。それを避けるには、()を使用してください。 –
実際に 'signal.signal(signal.SIGINT、handlerFunc)'はPython 2.6.5でうまく動作します(r265:79096、2010年3月19日、21:48:26)[MSC v.1500 32ビット(Intel)] on win32 ;私はちょうどそれを試みた。 – RobM