Was ich will? Erstellen Sie ein Skript, das ein Kommunikationsprotokoll startet und beendetKill einen erstellten Subprozess und alle von ihm erstellten Prozesse
Was habe ich? Ich habe ein Python-Skript, das ein Shell-Skript öffnet, und dieses Shell-Skript initialisiert das Protokoll. Wenn ich den Elternprozess erledige, läuft alles gut (aber im letzten Projekt muss der Elternprozess am Leben bleiben), aber wenn ich den Subprozess abbringe, wird es eine Zombiefunktion und mein Protokoll läuft weiter.
Probleme Ich kann glauben, sein: Ich "Tötung" das Shell-Skript bin (nicht das Protokoll, das ist, was ich will)
Die Linie I das Shell-Skript starten:
`protocolProcess = subprocess.Popen(["sh", arquivo], cwd = localDoArquivo) #inicia o protocolo`
protocolProcessPID = protocolProcess.pid #armazena o pid do protocolProcess
Die Linie Ich töte das Shell-Skript: os.kill(protocolPID, signal.SIGTERM)
Nun, das ist es! Wenn mir jemand helfen kann, bin ich sehr dankbar
verwandt: [Wie ein Python-Subprozess beendet wird, der mit shell = True gestartet wird] (http://stackoverflow.com/q/4789837/4279) – jfs