Linux-Tipp

Prozesse mit kill, pkill und killall beenden

Jürgen Donauer war als Systemadministrator zunächst für Informix und später IBM tätig. Dann verschlug es ihn in das Rechenzentrum von Media-Saturn. Dort kümmerte er sich mitunter um die Webserver, Datenbankanbindungen und den Online-Shop. Anschließend war er als Redakteur im Bereich Linux für TecChannel tätig. Derzeit arbeitet Jürgen Donauer als freier Autor für TECCHANNEL und COMPUTERWOCHE sowie als Privatdozent.
Programme oder einzelne Prozesse lassen sich unter bestimmten Umständen, beispielsweise Abstürzen, nicht mehr beenden. Unter Linux gibt es mit der kill-Familie aber noch ein letztes Mittel zum Beenden der Prozesse. Damit lässt sich ein Systemneustart vermeiden.

Lösung: Wenn Sie einen Prozess ausgemacht haben, der sich auf normalen Weg nicht mehr beenden lässt, dann müssen Sie ein Beenden erzwingen. Recht plastisch lautet der Befehl dafür kill. Im Prinzip ist die Syntax recht einfach: kill <PID> oder kill -9 <PID>. Letzteres lässt sich nicht blockieren. Das bedeutet, der Prozess wird gnadenlos abgeschossen. Sie können auch mehrere Prozesse gleichzeitig in das Datennirwana schicken: kill <PID 1> <PID 2> <PID 3> <und so weiter>.

Abschuss: Mit kill schicken Sie Prozesse in das Daten-Nirwana.
Abschuss: Mit kill schicken Sie Prozesse in das Daten-Nirwana.

Der Befehl pkill funktioniert ähnlich, schließt aber lediglich alle Kind-Prozesse und lässt den Eltern-Prozess am Leben. Auch diesen können Sie mit dem Schalter -9 versehen. Zum Beispiel schließt pkill -9 httpd alle Kindprozesse des Webservers. Mit killall geht es sowohl den Eltern- als auch den Kindprozessen an den Kragen. Sie finden weitere Informationen dazu in den entsprechenden Manpages: man kill, man pkill und man killall.

Produkte: Die Kommandos kill, pkill und killall zählen zum Linux-/ UNIX-Inventar. (cvi)