Aus der Sicht des Systems laufen Anwendungen in einem oder mehreren Prozessen und belegen dabei Systemresourcen wie Speicher und Prozessorzeit. Wir stellen Ihnen hier einige Befehle vor, mit denen Sie diese Prozesse (und damit deren Anwendungen) überwachen und beeinflussen können.
Der Befehl ps zeigt eine Liste von Prozessen, die auf dem System laufen, entsprechend der von Ihnen gesetzten Kriterien.
Die Eingabe von ps ohne Argumente zeigt nur die von Ihnen und in Ihrem Terminal gestarteten Prozesse:
$ ps PID TTY TIME CMD 18614 pts/3 00:00:00 bash 20173 pts/3 00:00:00 ps
Prozesse werden durch Signale kontrolliert. die Befehle kill und killall werden dazu benutzt, solche Signale an Prozesse zu übermitteln. Der Befehl kill benötigt als Argument eine Prozessnummer, während der Befehl killall einen Prozessnamen verlangt.
kill [-SIGNAL] <Prozess_Nummer>
killall [-SIGNAL] <Prozess_Name>
Signale können durch einen Namen oder eine Nummer spezifiziert werden. Führen Sie den Befehl kill -l aus, so sehen Sie eine Liste der verfügbaren Signale. Die meist benutzten Signale sind:
TERM
oder 15
: dies ist das Standardsignal, das gesendet wird, wenn weder Signalname noch Signalnummer angegeben werden. Es beendet den Prozess ordnungsgemäß („sanft“).
STOP
oder 19
: dieses Signal wird benutzt, um einen Prozess temporär anzuhalten. Zur Wiederaufnahme eines pausierenden Prozesses senden Sie das Signal CONT
oder 18
.
KILL
oder 9
: mit diesem Signal erzwingen Sie die Beendigung eines Prozesses. Es wird üblicherweise benutzt, um einen nicht mehr reagierenden (oder „eingefrorenen“) Prozess zu beenden. Es beendet den Prozess sofort.
kill 785: teilt dem Prozess mit der Nummer 785
mit, dass er seine Arbeit beenden soll, gibt ihm aber die Möglichkeit, eventuelle Aufräum-Operationen ordnungsgemäß abzuschließen;
kill -KILL 785: erzwingt den Abbruch des Prozesses mit der Nummer 785
. Der Prozess wird augenblicklich beendet und hat keine Möglichkeit, Aufräum-Operationen durchzuführen;
killall -TERM make: gibt allen Prozessen mit dem Namen make
, die von diesem Benutzer gestartet wurden, den Befehl, ihre Operationen zu beenden.
Was auch passiert, Sie kontrollieren nur Ihre eigenen Prozesse. Um die Prozesse anderer Benutzer müssen Sie sich keine Sorgen machen (solange Sie nicht root
sind), sie werden von den Befehlen nicht betroffen.
top ist ein Programm, das sowohl die Funktionen von ps als auch kill beinhaltet und darüber hinaus auch zur Beobachtung von Prozessen in Echtzeit dient. Es gibt Auskunft über Werte wie CPU- und Speicherbeanspruchung, Laufzeitdauer, usw. (siehe Abbildung 17.1, „Prozessüberwachung mit top“).
Das Werkzeug top wird ausschließlich durch die Tastatur bedient. Die Befehle unterliegen der Groß-/Kleinschreibung. Eine Hilfe erhalten Sie durch die Taste h. Es folgen die wichtigsten Befehle:
k: schickt ein Signal an einen Prozess. Sie werden nach der Prozess-PID und anschließend nach der Nummer oder dem Namen des zu sendenden Signals gefragt (standardmäßig TERM
oder 15
);
M: sortiert die Prozessliste nach der Menge des belegten Speichers (Spalte %MEM
);
P: sortiert die Prozesse nach der CPU-Zeit, die sie beanspruchen (Spalte %CPU
):
die Standardeinstellung;
u: zeigt die Prozesse des angegebenen Benutzers. Sie werden nach dem Namen des Benutzers gefragt, nicht nach seiner UID. Falls Sie keinen Namen angeben werden alle Prozesse angezeigt;
i: standardmäßig werden alle Prozesse angezeigt, auch die ruhenden. Mit diesem Befehl lassen Sie nur laufende Prozesse anzeigen (Prozesse, deren Spalte S
ein R
für Running anzeigt). Bei nochmaliger Eingabe dieses Befehls kehrt die Anzeige wieder zur Gesamtdarstellung zurück.