Signale an die Prozesse: kill, killall und top

kill, killall

Diese beiden Befehle werden dazu benutzt, Signale an die Prozesse zu schicken. Der Befehl kill benötigt als Argument eine Prozessnummer, während killall nach dem Prozessnamen verlangt.

Beiden Befehlen kann optional auch die Nummer des zu sendenden Signals als Argument mitgegeben werden. Standardmäßig senden beide das Signal 15 (TERM) an den entsprechenden Prozess. So lautet beispielsweise der Befehl zur sofortigen Beendigung des Prozesses mit der PID 785:

$ kill 785

Wenn Sie dabei das Signal 19 (STOP) senden wollen, geben Sie ein:

$ kill -19 785

Nehmen wir an, Sie wollen einen Prozess beenden, dessen Namen Sie kennen. Anstatt mit Hilfe von ps die Prozessnummer herauszufinden, können Sie das Kommando zum Beenden mit dem Namen des Prozesses versehen:

$ killall -9 mozilla-bin

Was Sie auch immer eingeben, Sie werden immer nur Ihre eigenen Prozesse beenden (es sei denn, Sie sind root). Also brauchen Sie sich auf einem Multiuser-System nicht um die Prozesse anderer Anwender zu sorgen, sie werden nicht angerührt.

ps und kill gemeinsam: top

top ist ein Programm, das die Funktionen von ps und kill beide erfüllt. Zusätzlich kann es noch zur Echtzeit-Überwachung von Prozessen benutzt werden, wobei es Informationen zur CPU- und Speicherauslastung, Laufzeit und mehr ausgibt (siehe Abbildung 6.1, „Prozessüberwachung mit top“).

Abbildung 6.1. Prozessüberwachung mit top

Prozessüberwachung mit top

Das Programm top wird vollständig mit der Tastatur bedient. Einen Hilfetext bekommen Sie mit der Taste h angezeigt. Die wichtigsten Befehle sind:

  • k: mit diesem Kommando wird ein Signal zum Prozess geschickt. top wird dann nach der Prozess PID fragen, gefolgt von der Nummer oder dem Namen des zu sendenden Signals (standardmäßig TERM oder 15);

  • M: mit diesem Kommando sortieren Sie die Anzeige von top nach der Speicherbelegung (Feld %MEM);

  • P: damit wird die Ausgabe nach der verbrauchten CPU-Zeit sortiert (Feld %CPU; dies ist die Standard-Sortiermethode);

  • u: zeigt die Prozesse eines benannten Users an, top fragt in diesem Fall nach einem Usernamen. Sie müssen den Namen des Benutzers angeben, nicht die UID. Falls kein Name angegeben wird, werden alle Prozesse angezeigt;

  • i: standardmäßig werden alle Prozesse, auch schlafende, angezeigt. Mit diesem Kommando beschränken Sie die Anzeige auf die zur Zeit laufenden Prozesse (Prozesse, deren Feld STAT ein R für Running anzeigen). Mit dem gleichen Kommando kehren Sie zur Standardanzeige (alle Prozesse) zurück.

  • r: Mit diesem Kommando ändern Sie die Priorität ausgewählter Prozesse.