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 <Prozess_Nummer>
killall <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 19.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.