440 Stimmen

Wie beendet man einen Python-Unterprozess, der mit shell=True gestartet wurde?

Ich starte einen Unterprozess mit dem folgenden Befehl:

p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)

Wenn ich jedoch versuche, mit zu töten:

p.terminate()

oder

p.kill()

Der Befehl läuft im Hintergrund weiter, und ich habe mich gefragt, wie ich den Prozess tatsächlich beenden kann.

Beachten Sie, dass, wenn ich den Befehl mit ausführe:

p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)

Es wird erfolgreich beendet, wenn der Befehl p.terminate() .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X