out of the box: gPS

Aus LinuxUser 08/2003

out of the box: gPS

Prozesse im Überblick

Sie verlieren bei textbasierten Prozessmonitoren wie top schnell die Übersicht? gPS bietet einen grafischen Ersatz und kann sogar mehrere Rechner über ein Netzwerk überwachen.

out of the box

Es gibt tausende Tools und Utilities für Linux. “out of the box” pickt sich die Rosinen raus und stellt pro Monat ein Progrämmchen vor, das wir für schlichtweg unentbehrlich oder aber zu Unrecht wenig beachtet halten.

Nein, mit dem globalen Positionssystem GPS hat der Prozessmonitor gPS nichts zu tun. Hier steht die Abkürzung für “graphical Process Status”. Wer die Überwachungstools der großen Desktop-Umgebungen KDE und GNOME nicht mag oder ohnehin leichtgewichtigere Alternativen wie XFCE oder WindowMaker vorzieht, findet in gPS ein sinnvolles Werkzeug, um nach speicherfressenden Programmen zu fahnden oder Server-Prozesse im Blick zu behalten.

Baukasten

Zum Kompilieren des gPS-Quelltext-Archivs von http://gps.seul.org/ oder der Heft-CD benötigt man neben den C(++)-Compilern gcc und g++ die durch das Rastergrafikprogramm gimp bekannte gtkBibliothek nebst zugehörigem Development-Paket.

Genaugenommen besteht gPS aus zwei Komponenten: dem eigentlichen Monitor und einem Server, der Prozesse auf entfernten Rechner überwacht. Zum Auspacken, Kompilieren und Installieren des Prozessmonitors gps führen Sie folgende Schritte aus:

tar xzf gps-1.1.0.tar.gz
cd gps-1.1.0
./configure
make
su  (root-Passwort eingeben)
make install_gps
exit

Listen und Bäume

gps stellt Prozesse auf zwei Arten dar: Das Hauptfenster zeigt sie in Form einer Liste (Abbildung 1), eine Darstellung, die der Ausgabe des ps-Kommandos in der Shell ähnelt. Durch Klick auf eine Spaltenüberschrift (PID, Name, Owner usw.) sortiert man nach dem jeweiligen Kriterium auf- oder absteigend. Die vier Buttons am unteren Rand dienen zum Auffrischen der Liste (Refresh), zum Senden von Signalen an Prozesse (Hang Up (SIGHUP) und Kill (SIGKILL)) sowie zum Beenden des Tools (Close).

Abbildung 1: Die gps-Prozessliste sieht fast aus wie eine ps-Ausgabe, nur übersichtlicher

Abbildung 1: Die gps-Prozessliste sieht fast aus wie eine ps-Ausgabe, nur übersichtlicher

Der Menüpunkt View / Tree view… öffnet eine Baumdarstellung (Abbildung 2). Diese Darstellung macht deutlich, welche Prozesse Kinder anderer Prozesse sind: So startete der User chris auf dem Rechner camera aus einer Shell auf der Konsole (Prozess Nr. 363) die grafische Oberfläche mit dem Skript startx. Dieser Prozess Nr. 378 ist ein Kind von 363 und hat selbst auch eine Menge Kindprozesse.

Ähnlich wie bei Dateimanagern mit Baumdarstellung lassen sich Teile des Baums ein- oder ausklappen. Markiert man einen Prozess, kann man ihm und/oder allen Prozessen seines Teilbaums über das Action-Menü Signale schicken.

Abbildung 2: Der Prozessbaum macht Verwandschaftsverhältnisse der Prozesse untereinander deutlich

Abbildung 2: Der Prozessbaum macht Verwandschaftsverhältnisse der Prozesse untereinander deutlich

Mehr ist mehr

Über den Punkt Action / Details… gibt gps ausführlichere Informationen zum gewählten Prozess (Abbildung 3). Diese Informationen holt sich das Programm aus dem proc-Dateisystem, das auch Kommandos wie ps und top als Datenquelle dient.

Abbildung 3: Ein Prozess unter der Lupe

Abbildung 3: Ein Prozess unter der Lupe

Weitere Informationen liefert der Menüpunkt Action / Watch Process:half second polling im Hauptfenster. (Das Action-Menü in der Baumansicht kennt nicht alle der dort verzeichneten Unterpunkte.) Dieser zeichnet ein horizontal scrollendes Diagramm der aktuellen Speicher- und Prozessorauslastung für den gewählten Prozess. Auslastungsdaten für das gesamte System liefern die Menüpunkte View / CPU and memory usage… und View / CPU and memory usage per user…. Letzterer zeigt ein Stapeldiagramm, das visualisiert, wieviel Prozent des Speichers (Memory) und der Rechenleistung (CPU) einzelne Benutzer und Benutzergruppen verbrauchen.

Mittels Filter / Set filter… reduziert man die Listendarstellung auf Prozesse, die einem einstellbaren Kriterium genügen. Mit dem Filter aus Abbildung 4 zeigt gps nur noch Prozesse an, die mehr als 20 Prozent der Rechenleistung des Prozessors für sich beanspruchen. Leider lassen sich mehrere Kriterien nicht kombinieren. Über Filter / Clear filter schalten Sie die Filterung wieder aus.

Abbildung 4: Mit solchen Filter lässt sich die Anzeige auf Problemprozesse fokussieren

Abbildung 4: Mit solchen Filter lässt sich die Anzeige auf Problemprozesse fokussieren

Fern sehen

Anders als top oder ps kann gPS Prozesse von entfernten Rechnern zusammen mit den lokal laufenden anzeigen. Dazu bedient es sich des mitgelieferten Servers rgpsp. Zu dessen Installation wechseln Sie in einer Shell mit root-Rechten nochmal ins Quellverzeichnis gps-1.1.0 und geben dort make install_net_all ein. Neben dem eigentlichen Server-Programm landen das Init-Skript/etc/rc.d/init.d/rgpsp und die Konfigurationsdatei /etc/rgpsp.conf auf Ihrem System. Für Benutzer von Red-Hat-, Mandrake- und SuSE-Installationen sollte das genügen.

Debianer verschieben das Skript nachträglich mit dem Kommando mv /etc/rc.d/init.d/rgpsp /etc/init.d/rgpsp an die richtige Stelle. Nun gilt es, den Default-Runlevel Ihres Systems herauszufinden, um über das zugehörige Verzeichnis den rgpsp-Dienst automatisch beim Booten zu starten. Diesen entnehmen Sie der Zeile initdefault in der Datei /etc/inittab. Debian nutzt üblicherweise den Default-Runlevel 2; hier legen Sie also im Verzeichnis /etc/rc2.d einen symbolischen Link an. Beim Herunterfahren soll sich der Dienst ordentlich beenden, deshalb gehören entsprechende Links in die Verzeichnisse /etc/rc0.d und /etc/rc6.d:

cd /etc/rc2.d
ln -s ../init.d/rgpsp S90rgpsp
cd /etc/rc0.d
ln -s ../init.d/rgpsp K10rgpsp
cd /etc/rc6.d
ln -s ../init.d/rgpsp K10rgpsp

Durch die Konfigurationsdatei /etc/rgpsp.conf regeln Sie den Netzzugriff auf den Server. In dieser Datei legen Sie die IP-Adressen der zugriffsberechtigten Rechner ab, eine Adresse pro Zeile. Alternativ erlauben Sie allen Rechnern den Zugriff, indem Sie eine mit einem einzelnen Stern @L: * gefüllte Zeile hinein schreiben – eine aus Sicherheitsgründen nicht empfehlenswerte Einstellung.

Um derart mit rgpsp ausgestattete Rechner fernzuüberwachen, wählen Sie im gps-Hauptfenster den Menüpunkt Network / Network watch…. Im daraufhin erscheinenden Fenster Network Watch Setup (Abbildung 5) erstellen Sie nun eine Liste der abzufragenden Rechner. Im Ergebnis zeigt gps wie in Abbildung 1 Prozesse des lokalen Rechners camera und des entfernten Rechners organizer gemeinsam an.

Abbildung 5: Prozessüberwachung per Netz

Abbildung 5: Prozessüberwachung per Netz

Über letztere fragen Sie Detailinformationen genau so ab wie über lokale Prozesse. Einzig Signale dürfen an sie aus Sicherheitsgründen nicht gesendet werden.

Wer es mit der Sicherheit richtig ernst nimmt, modifiziert im übrigen das Init-Skript dahingehend, dass der rgpsp-Server nicht mit root-Rechten startet. Dazu ersetzt man die Zeile $RGPSP durch su nobody -c $RGPSP.

Glossar

Rastergrafik

Auch Bitmap genannt: Oberbegriff für Grafikformate wie TIFF, JPG, PNG oder GIF, bei denen Informationen zu einzelnen Bildpunkten (Pixeln) abgelegt werden. Im Gegensatz dazu stehen Vektorgrafiken, die mathematische Beschreibungen geometrischer Formen enthalten und sich daher verlustfrei skalieren lassen.

Bibliothek

Dateien, die eine Sammlung nützlicher C- oder C++-Funktionen für bestimmte Zwecke enthalten. So gibt es etwa die libm, die mathematische Funktionen bereit stellt, oder die libXt, die Funktionen zur Programmierung des X-Fenstersystems enthält. Oft nutzen mehrere Programme eine Bibliothek gemeinsam (“shared”).

Shell

Einer der wichtigsten Bestandteile jedes Unix-Systems – die kommandozeilengesteuerte Benutzerschnittstelle. Die Shell kann auch Textdateien mit darin verzeichneten Shell-Kommandos, so genannte Skripte, ausführen.

PID

Um auf einem Linux-System laufende Programme unterscheiden zu können, bekommt jeder Prozess eine eindeutige Identifikationsnummer zugewiesen, seine “Process ID”.

Signale

Signale veranlassen Prozesse dazu, bestimmte Aktionen durchzuführen – allerdings nur dann, wenn dafür eine Signalbehandlungsroutine (ein Handler) existiert. So lesen viele Dienstprogramme ihre Konfiguration neu ein, wenn ihnen das Hangup-Signal SIGHUP geschickt wird. Signale zum Beenden von Prozessen sind SIGINT, SIGTERM und SIGKILL, wobei letzteres zum sofortigen Abbruch des Prozesses durch den Kernel führt.

Init-Skript

Ein Shell-Skript, das einen Dienst beim Booten bzw. beim Herunterfahren des Systems (genaugenommen beim Wechsel des Runlevels) startet oder stoppt. Mehr Informationen zu Runlevels und dem Systemstart bietet [1].

Runlevel

Ein Runlevel beschreibt einen Systemzustand, in dem vorher festgelegte Dienste laufen. Übliche Runlevels sind 2 bis 5 (normaler Multiuser-Betrieb mit oder ohne X), S oder 1 (Singleuser-Betrieb für Reparaturzwecke), 0 (System anhalten) und 6 (System neustarten).

..

Zwei Punkte symbolisieren in der Shell das jeweils übergeordnete Verzeichnis.

Infos

[1] Marc André Selig: “Wie Linux sich die Stiefel anzieht”, LinuxUser 12/2002, S. 26 ff.

LinuxUser 08/2003 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben