Ich starte einen Unterprozess mit dem folgenden Befehl:
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
Wenn ich jedoch versuche zu töten mit:
p.terminate()
oder
p.kill()
Der Befehl wird weiterhin im Hintergrund ausgeführt, daher habe ich mich gefragt, wie ich den Prozess tatsächlich beenden kann.
Beachten Sie Folgendes, wenn ich den Befehl ausführe mit:
p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
Es wird erfolgreich beendet, wenn das ausgegeben wird p.terminate()
.
shell=True
großen Unterschied?
cmd
siehst du aus? Es kann einen Befehl enthalten, der das Starten mehrerer Prozesse auslöst. Es ist also nicht klar, über welchen Prozess Sie sprechen.