Ich verwende ein Python-Skript im Hintergrund mit dem Befehl python script.py &
. Das Skript könnte so aussehen.Beenden Hintergrund Python-Skript schön
import time
def loop():
while True:
time.sleep(1)
if __name__=='__main__':
try:
loop()
except KeyboardInterrupt:
print("Terminated properly")
Wenn es um die Einstellung des Skript kommt, würde Ich mag einige Bereinigungs tun, bevor es (wie Drucken „Abgebrochen richtig“) gestoppt wird. Wenn ich als aktueller Prozess laufe, würde dies nach einem Tastatur-Interrupt von der except
-Anweisung behandelt werden.
Mit dem Befehl kill PID
wird die Bereinigung nie ausgeführt. Wie kann ich einen Hintergrundprozess stoppen und einige Codezeilen ausführen, bevor er beendet wird?
können Sie 'kill -s 2 PID' verwenden, um einen Tastatur-Interrupt zur Verarbeitung von' PID' zu senden. Ähm ... es sollte Signal "2" sein, wenn es keinen Fehler mit meiner Erinnerung gibt. – Sraw
'kill' sendet ein anderes Signal als' KeyboardInterrupt'. Standardmäßig sendet es 'INT (2)' Sie können mehr darüber hier lesen http://linuxcommand.org/lc3_man_pages/kill1.html – Vinny
@Vinny Signal 9 ist SIGKILL ... – NieDzejkob