3

Pythonから同じタイプのいくつかのサブプロセスを制御したい(私はLinuxの下にいます)。したい:

  • それらを開始します。
  • 彼らを止めてください。
  • それらがまだ実行されているかどうかを尋ねます。

spawnlを使用してプロセスを開始し、pidを取得できます。このpidを使用して、killで停止できます。そして、それがpidで実行されているかどうかを尋ねる方法もあると確信しています。

問題は、次のことが起こった場合はどうなるかということです。プロセスを開始し、pidを覚えています。プロセスは私が気付かないうちに終了し、別のまったく異なるプロセスに同じpidが割り当てられ始めます。私は自分のプロセスを殺そうとします、私は完全に異なるものを殺します。

Pythonでプロセスを開始および制御するためのより良い方法は何ですか?ありがとう!

4

1 に答える 1

7

subprocess.Popenを使用して他のプロセスを開始し、結果のPopenオブジェクトを保存できます。そのオブジェクトのメソッドを使用すると、プロセスがまだ生きているかどうかを確認し、プロセスが終了するのを待って、終了し、強制終了することができます。これらはすべて、pidベースの混乱のリスクなしに行われます。プラスとして、これはよりクロスプラットフォームのアプローチでもありますが、この場合は特に気にしないかもしれません。

于 2010-06-02T21:22:28.423 に答える