Linux-Mandrake:
Benutzerhandbuch
und Referenz

MandrakeSoft

 
 
Januar 2000
http://www.linux-mandrake.com


Weiter : Woher Sie Dokumentation bekommen
Zurück : Lothar
Inhalt

(Zurück zum Register)

Kapitel 7 : Prozesskontrolle


Ein wenig mehr über Prozesse

In einem früheren Kapitel wurde bereits erwähnt, dass es möglich ist, Prozesse zu überwachen. Dieses Kapitel soll Sie damit vertraut machen. Um die Aktionen die wir durchführen wollen zu verstehen, ist es sinnvoll, etwas mehr über Prozesse zu wissen.

Prozessbaum

Ebenso wie das Dateisystem sind unter Linux auch die Prozesse in einer hierachischen Baumstruktur angeordnet. Jeder Prozess hat eine Nummer, die sog. PID (Process ID, engl. für ,,Prozess-Identifikationsnummer''). Er kennt auch die Nummer des Prozesses, der ihn erzeut hat, also seines Vaters. Diese Nummer wird PPID (Parent Process ID, engl. für ,,Eltern Prozess-Identifikationsnummer'') genannt.

Der Prozess mit der Nummer 1 hat den Namen init (siehe Referenz). Er ist für die Prozesshierarchie das, was die Verzeichnisbaumwurzel ,,/'' für das Dateisystem ist.

Im nächsten Abschnitt werden die beiden Kommandos ps und pstree erläutert, die es Ihnen ermöglichen Informationen über die laufenden Prozesse zu bekommen.

Signale

Unter Unix gibt es 31 verschiedene Signale. Auf 29 davon kann ein Prozess reagieren, er kann jedoch auch darauf verzichten. Bei den anderen beiden hat er keine Wahl: Signal Nummer 9 (KILL) und Signal Nummer 19 (STOP).

Signal 9 beendet einen Prozess unwiederruflich, ohne ihm die Zeit zu geben, sich korrekt zu beenden. Mit diesem Signal können Sie Prozesse aus dem System entfernen, die sich nicht ,,sauber'' beenden lassen. Eine komplette Liste aller Signale erhalten Sie mit dem Befehl kill -l.

Informationen über Prozesse erhalten: ps und pstree

Diese beiden Programme geben eine Liste aktuell laufender Prozesse ahand der von Ihnen gewählten Kriterien aus.

ps

Wenn sie diesen Befehl ohne Parameter ausführen, erhalten Sie nur eine Liste der Prozesse, die Ihrem aktuellen Benutzerkennzeichen zugeordnet sind und im aktuellen Terminal gestartet wurden:

$ ps
  PID TTY          TIME CMD
 5162 ttya1    00:00:00 zsh
 7452 ttya1    00:00:00 ps

Wir werden uns aus der großen Parameteranzahl die bekanntesten ansehen:

Es gibt etliche weitere Parameter. Details sind im Handbuchauszug ps(1) zu finden.

Die Ausgabe dieses Kommandos besteht aus unterschiedlichen Feldern: das interessanteste ist PID, die Prozess-Identifikationsnummer. Das Feld CMD enthält den Namen des ausgeführten Prozesses.

Eine gängige Methode, den Befehl ps aufzurufen ist die Folgende:

$ ps ax | less

Sie erhalten damit eine Liste aller aktuell laufenden Prozesse. Sie können darin den oder die Prozesse suchen, die Probleme bereiten, um sie anschließend mit dem kill-Befehl zu beenden.

pstree

Der Befehl pstree zeigt die Prozesse in Form einer Baumstruktur an. Einer der Vorteile ist, dass sie sofort die Abstammungs-Hierarchie eines Prozesses vor Augen haben: Wenn Sie eine Reihe von Prozessen beenden wollen, die alle Kinder eines Vaterprozesses sind, genügt es, den Vater zu beenden. Der Parameter -p, zeigt Ihenen die PID eines jeden Prozesses mit an. Durch Hinzunahme von -u wird bei jedem Wechsel der Eigentumsverhältnisse das entsprechende Benutzerkennzeichen mit angegeben. Da die Liste meistens recht lang ist, sollten Sie pstree in folgender Weise aufrufen:

$ pstree -up | less

Sie erhalten damit eine Übersicht über den gesamten Prozessbaum.

Prozessen Signale schicken: kill,
killall und top

Der schnelle Weg unter X: xkill

Falls Sie KDE, als Arbeitsoberfläche verwenden, gibt es einen schnellen Weg, blockierte X-Prozesse zu beenden. In Abbildung 9.1 sehen Sie das Symbol des Programms xkill.

Das xkill-Symbol
Abbildung 9.1 Das xkill-Symbol

Sie starten das Programm entweder durch einen Klick mit der linken Maustaste oder von einer Kommandozeile aus. Solange xkill aktiv ist ändert sich der Mauszeiger. Der Prozess wird beendet, wenn Sie einen Linksklick auf einem Fenster des Programms, ausführen.

kill, killall

Mit Hilfe dieser beiden Befehle können Sie Signale an Prozesse schicken. kill benötigt die PID, wohingegen killall den Kommandonamen des entsprechenden Prozesses braucht.

Beiden Befehlen kann optional eine Signalnummer als Parameter übergeben werden. Standardmäßig schicken Sie beide das Signal 15 (TERM) an die jeweiligen Prozesse. Wenn sie etwa den Prozess mit der PID 785 beenden wollen, geben Sie Folgendes ein:

$ kill 785

Falls Sie das Siganal 9 schicken wollen, geben Sie Folgendes ein:

$ kill -9 785

Angenommen Sie wollen einen Prozess beenden, von dem Sie nur den Programmnamen kennen. Statt mittels ps die PID zu ermitteln, können Sie auch direkt den Prozess beenden:

$ killall -9 netscape

Solange Sie nicht unter dem privilegierten Benutzerkennzeichen root angemeldet sind, können Sie mit diesen Befehlen nur Ihre eigenen Prozesse beeinflussen. Sie brauchen daher keine Angst zu haben dass andere Anwender betroffen werden, wenn diese Programme mit dem selben Namen laufen haben.

top

Der Befehl top stellt ein universelles Werkzeug für die Bearbeitung von Prozessen dar. Sie haben damit sowohl den Funktionsumfang von ps, als auch von kill abgedekt. Da es sich dabei um ein Kommandozeilenprogramm handelt, müssen sie es in einem Terminal starten, wie in Abbildung 9.2 zu sehen.

Beispiel einer Ausgabe von top
Abbildung 9.2 Beispiel einer Ausgabe von top

Das Programm ist vollständig tastaturgesteuert. Durch Drücken der Taste ,h` erhalten Sie eine kurze Hilfe. Hier eine Auswahl der verwendbaren Tastaturküzel:


Weiter : Woher Sie Dokumentation bekommen
Zurück : Lothar
Inhalt

Copyright © 2000 MandrakeSoft