Heute schauen wir Linux unter die Motorhaube: Wie geht der Rechner mit Programmen um? Mit dem richtigen Knowhow sind Sie nicht mehr hilflos, wenn eine Anwendung abstürzt.
Wer kennt das nicht: Ein Windows-Programm hängt sich auf, und nichts geht mehr. Mit der Tastenkombination [Strg+Alt+Entf] öffnet sich der Task-Manager. Er zeigt dem Benutzer an, welche Programme gerade im Hauptspeicher residieren. Dazu liefert er Information über den Status der jeweiligen Anwendung.
Ist das Betriebssystem in Mitleidenschaft gezogen, wird es meist sehr ärgerlich, weil unter Umständen nur noch ein Neustart hilft. Ein weiterer Druck auf die drei Tasten macht die Arbeit der letzten halben Stunde zunichte.
So ein Datenverlust ärgert besonders, wenn nicht die Anwendung, mit der Sie arbeiten, sondern eine parallel laufende schuldig an dem Desaster ist. Unter Linux steigen Ihre Chancen ganz erheblich, Daten und somit Arbeit zu retten. Linux ist ein echtes Multitasking-System, das – auch wenn es nur mit einem Prozessor läuft – die Programme gleichberechtigt, aber getrennt behandelt. Starten Sie als Anwender ein Programm, wird es im Inneren des Rechners als Prozess verwaltet. Dabei lädt der Rechner (vereinfacht gesagt) eine Kopie des Programm-Codes in den Hauptspeicher. Dort kombiniert er ihn mit den Informationen über den Benutzer und den sogenannten Eltern-Prozess.
Jeder Prozess hat nicht nur einen Besitzer sondern auch einen übergeordneten Prozess, von dem er aufgerufen wurde. Starten sie beispielsweise im Netscape Navigator den Acrobat Reader, weil Sie ein PDF-Dokument lesen wollen, so gehört der Reader als Kind-Prozess zum Navigator. Nur der Prozess init der für den Systemstart verantwortlich ist, hat keinen Eltern-Prozess.
Geben Sie an der Kommandozeile top ein und sehen Sie sich die Ausgabe an:
Als erstes zeigt der Computer in diesem Beispiel an, dass 67 Prozesse geladen sind. Davon laufen drei, nämlich X (der X-Server) und top (das top-Programm) sowie kwm (der K-Window-Manager). Dies erkennen Sie an dem R in der Spalte STAT: R steht für “running”; S bedeutet “sleeping”. Es gibt, wie Sie sehen, noch mehr Zustände, aber diese beiden sind die wichtigsten.
In der dritten Zeile sehen Sie Angaben über die CPU, das Herzstück Ihres Computers, die vierte und fünfte Zeile geben Informationen über den Arbeits- und den Auslagerungsspeicher an. PID gibt die laufende Nummer des Prozesses an, die Sie in Zusammenhang mit dem kill-Befehl verwenden können (Beispiel: kill 1836 würde das top-Programm beenden).
Mit dem Befehl ps (process status) und den entsprechenden Optionen können Sie sich eine Vielzahl von Informationen über die einzelnen Prozesse, sortiert nach verschiedenen Kriterien, anzeigen lassen. Wir gehen an dieser Stelle nicht auf alle Details von ps ein. Schauen Sie in die Manual-Page (man ps an der Kommandozeile eingeben).
Allerdings ist die Kommandozeile nicht jedem vertraut, und deshalb zeigen wir Ihnen hier die grafischen Werkzeuge gtop und ktop sowie die Alternativen treeps und qps Mit diesen haben Sie die Prozess-Verwaltung gut im Griff.
Qps
Qps bietet ein übersichtliches Prozess-Management. Alle Anzeigen lassen sich über die Voreinstellungen aktivieren oder deaktivieren und auf die individuellen Bedürfnisse abstimmen. Prozesse können über einen Mausklick direkt angesteuert und bei Bedarf “gekillt” werden. In einer Grafik wird die Prozessor-Auslastung angezeigt; Balken stellen die Arbeitsspeicher- und Swap-Bereich-Belegung dar.
Die einzelnen Prozesse können entweder in einer linearen Sicht dargestellt werden oder aber in der Baumansicht, die sich besonders gut eignet um herauszufinden, welcher Prozess auf welchem aufsetzt.
Im Menü Signal finden Sie Einträge TerminateHangupInterrupt und Kill über die Sie die Signale SIGTERM, SIGHUP, SIGINT und SIGKILL an markierte Prozesse schicken können. Über Tastenkombinationen [Alt+T],[Alt+H] und [Alt+K] sind die wichtigsten auch ohne das Menü erreichbar.
Das Prozess-Management von Unix-Systemen bietet eine Vielzahl von Möglichkeiten, die hier nicht im einzelnen besprochen werden. Qps trägt diesen Möglichkeiten aber Rechnung und erlaubt somit einen komfortablen Umgang mit dem System.
treeps
Wer es schön bunt mag, ist bei treeps an der richtigen Adresse: Das Programm glänzt durch eine exquisite Auswahl an Farben, was aber die Funktionalität nicht einschränkt. Ein Klick mir der linken Maustaste auf einen Prozess zeigt dessen Daten an; ein Klick mit rechts öffnet ein Kontext Menü, das – sehr bequem – unter anderem die entsprechende Man-Page zu einem Progammm anbietet, wenn diese vorhanden ist.
Es steht nur die Baumansicht zur Verfügung. Unter Views/Tree Orientation/Starfield topology ordnet das Programm die Prozesse in konzentrischen Kreisen von innen nach außen an. Auch treeps bietet dem Benutzer die Möglichkeit, einzelne Prozesse gezielt abzuschießen. Dazu stehen unter dem Menüpunkt Processes/Signal die entsprechenden Befehle mit der zugehörigen Nummer zur Verfügung.
ktop
Das Programm ktop ist für den Linux-Einsteiger einfach zu bedienen. Die Baumansicht erinnert ein wenig an einen Dateimanager – nur, dass hier eben Prozesse gemanagt werden. Von der Funktionalität ist es einfacher gehalten als die übrigen Programme. So können hier über die Menüleiste nur die Signale SIGINT, SIGTERM, SIGQUIT und SIGKILL verschickt werden.
Der Benutzer wählt, wie bei den anderen Programmen, ob er sich alle, seine eigenen, die System- oder die User-Prozesse (solche, die von “echten” Anwendern und nicht vom System gestartet wurden) anzeigen lassen möchte. In übersichtlichen Balken-Diagrammen zeigt Ihnen ktop unter dem Tab Auslastungsanzeige Angaben zur Belegung der CPU und des Speichers. Hier können Sie die Belastung Ihres Rechner sehr gut über einen längeren Zeitraum verfolgen und speicher- oder rechenzeitfressende Anwendungen ausfindig machen.
gtop
Last but not least gibt es natürlich das entsprechende Tool für GNOME. Hier heißt es – wie könnte es anders sein – gtop. gtop bietet deutlich mehr Informationen als ktop, unter anderem zusätzliche Daten über die Belegung der Partitionen oder den Arbeitsspeicher.
Eine Baumansicht kann hier nicht gewählt werden. Damit ist dem Benutzer die schnelle Sicht auf Eltern-Kind-Abhängigkeiten versperrt. gtop richtet sich eher an den Spezialisten, der in der Vielzahl der Einstellungsmöglichkeiten nicht den Überblick verliert, sondern die für ihn günstigste Konfiguration herausarbeiten kann.
Fazit
Von der Funktionalität gibt es die Bandbreite von sehr einfach (ktop) bis umfassend konfigurierbar (gtop). Ob viele Möglichkeiten immer die besser Lösung sind, entscheiden Sie als Anwender allein. Unser Beispiel zeigt aber, dass es nicht immer die Mainstream-Produkte mit dem “g” oder “k” davor sein müssen.
Glossar
-
Multitasking-System
-
Ein Multitasking-System ist – im Gegensatz zu einem Singletasking-System – in der Lage, mehrere Prozesse zur gleichen Zeit abzuarbeiten. Steht dafür nur ein Prozessor zur Verfügung, wird die Prozessor-Zeit auf die verschiedenen Anwendungen aufgeteilt, so dass aufgrund der schnellen Zyklen der Eindruck von Parallelität entsteht. Linux ist insofern ein echtes Multitasking-System, da es knallhart die Prozess-Zeit verwaltet und keiner Anwendung erlaubt, die ganze Rechenzeit für sich zu beanspruchen.
-
kill
-
Der (in einer Konsole einzugebende) Befehl kill [-SIGNAL] [Nummer] sendet ein Signal an Prozess [Nummer], das diesem dann mitteilt, wie es sich beim Beenden verhalten soll. Mit SIGTERM (engl. signal termination) wird dem Prozess mitgeteilt, dass er sich beenden soll. Dieser versucht dann, noch offene Dateien zu schließen und beendet sich. SIGKILL (engl. signal kill) geht rabiater vor: Der entsprechende Prozess erhält keine Chance zum ordentlichen Ausstieg, sondern wird sofort beendet. Wird kein Signal angegeben, sendet kill das Standard-Signal SIGTERM. (Beispiel: kill -SIGTERM 987)
Infos
[1] KDE-Homepage: http://www.kde.org/
[2] Gnome-Homepage: http://www.gnome.org
[3] Treeps: http://www.slip.net/~gmd/tps/treeps.htm













