Ich habe ein Python-Skript, das ausgeführt wird und kontinuierlich Fehler in eine Protokolldatei ausgibt.
Ich möchte das Skript bearbeiten und erneut ausführen, weiß aber nicht, wie ich das Skript anhalten soll.
Ich bin derzeit über PuTTy unter Linux angemeldet und mache dort die gesamte Codierung. Gibt es einen Befehl, um das Python-Skript unter Linux zu stoppen?
Suchen Sie die Prozess-ID (PID) des Skripts und geben Sie ein aus
kill -9 PID
, um den Prozess abzubrechen, es sei denn, es wird als forground-Prozess auf dem Terminal ausgeführt. In diesem Fall können Sie mit Strg-C das Skript abbrechen.Finden Sie die PID mit diesem Befehl:
Es listet alle Python-Prozesse auf, wählt den richtigen aus und notiert seine PID. Dann
bricht den Prozess ab. Möglicherweise erhalten Sie eine Meldung, dass Sie einen Vorgang zu diesem Zeitpunkt abgebrochen haben.
Alternativ können Sie den
top
Befehl verwenden, um den Python-Prozess zu finden. Geben Sie einfachk
(for kill) ein und dastop
Programm fordert Sie auf, die PID des zu tötenden Prozesses einzugeben . Manchmal ist es schwierig, alle Prozesse zu sehen, an denen Sie interessiert sind,top
da sie möglicherweise vom Bildschirm verschwinden. Ich denke, derps
Ansatz ist einfacher / besser.quelle
-9
ich es benutze , würde ich es zuerst "sanft" töten. Nur wenn es nicht reagiert, würde ich verwenden-9
.Probieren Sie diese einfache Zeile aus, sie beendet alle
script.py
:quelle
Wenn das Programm der aktuelle Prozess in Ihrer Shell ist, wird das Python-Programm durch Eingabe von Strg-C gestoppt.
quelle
In einer perfekten Welt würden Sie die Dokumentation für das Skript lesen und sehen, mit welchen Signalen das Skript beendet werden soll. Im wirklichen Leben möchten Sie ihm wahrscheinlich zuerst das TERM-Signal senden, möglicherweise mithilfe eines KILL-Signals, wenn das TERM ignoriert wird. Sie finden die Prozess-ID also mit dem Befehl ps (wie bereits beschrieben). Dann kannst du rennen
kill -TERM <pid>
. Einige Programme bereinigen Dinge, wie Dateien, die sie möglicherweise geöffnet haben, wenn sie ein solches Signal erhalten. Es ist also besser, mit so etwas zu beginnen. Wenn das nicht funktioniert, dann gibt es nicht mehr viel übrig außer dem großen Hammer zu tun:kill -KILL <pid>
. (Sie können die numerischen Werte verwenden, z. B. -KILL = -9, und sie werden sich wahrscheinlich nie ändern. Theoretisch ist es jedoch sicherer, die Namen zu verwenden.)quelle
Wenn Sie den Namen des Skripts kennen, können Sie die gesamte Arbeit auf einen einzigen Befehl reduzieren:
Wenn Sie sicherstellen möchten, dass es sich um ein Python-Skript handelt, gehen Sie wie folgt vor:
Wenn Sie alle Python-Skripte töten wollten:
Ich nehme an du kommst auf die idee;)
Erinnerung: Sie müssen den "" Skriptnamen wie in den Beispielen angeben.
quelle