Beenden von Prozessen mit kill
Der kill Befehl wird verwendet, um einen Prozess zu beenden. Wenn ein Programm nicht mehr reagiert, könnte man gezwungen werden, ihn mit diesem Befehl zu beenden. Der Befehl kill sendet Signale an laufende Prozesse (gekennzeichnet durch ihre PID), um die Beendigung des Prozesses zu beantragen. Signale können einen Prozess nicht nur beenden, sondern von ihm auch fordern, Konfigurationsdateien erneut zu lesen, zu pausieren, fortzusetzen usw.
Signale werden von verschiedenen Zahlen dargestellt. Wenn Sie das Signal nicht angeben, beträgt der Standardwert 15, was den Prozess beendet, jedoch um offene Dateien zu schließen.
Hier ist eine Liste der Signale und deren Beschreibung, die Sie am häufigsten nutzen werden:
Signal | Nummer | Bedeutung |
SIGHUP | 1 | Blockierung des Kontrollterminals oder Ende des Kontrollprozesses |
SIGKILL | 9 | unblockbares Beenden |
SIGTERM | 15 | Beendigungsanfrage |
SIGSTOP | 17,19,23 | halte Prozess an, unblockierbar |
SIGCONT | 18,19,25 | fahre angehaltenen Prozess fort |
Nehmen wir zum Beispiel an, dass wir ein Programm namens dd haben, das überwiegend die CPU-Zeit benutzt und das wir nicht stoppen können. Um es mit dem Befehl kill zu beenden, müssen wir zuerst die PID des Prozesses herausfinden. Das können wir mit Hilfe des top Befehls machen:
Der Befehl top zeigt die PID des Prozesses (13203) an. Um den Prozess zu beenden, benutzen wir den Befehl kill. Wir werden ein Signal SIGKILL benutzen, das den Prozess beendet, ohne Tasks der Routineabschaltung zu verwenden: