次のコマンドでサブプロセスを起動しています。
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
しかし、私が使って殺そうとすると:
p.terminate()
または
p.kill()
コマンドはバックグラウンドで実行され続けるので、どうすれば実際にプロセスを終了できるのか疑問に思いました。
コマンドを次のように実行すると、
p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
を発行すると、正常に終了しp.terminate()ます。
shell=True大きな違いはありませんか?
cmdどのように見えますか?これには、いくつかのプロセスの起動をトリガーするコマンドが含まれている場合があります。したがって、どのプロセスについて話しているのかは明確ではありません。