次のコマンドでサブプロセスを起動しています。
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
どのように見えますか?これには、いくつかのプロセスの起動をトリガーするコマンドが含まれている場合があります。したがって、どのプロセスについて話しているのかは明確ではありません。