Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

 << zurück
Linux-UNIX-Programmierung von Jürgen Wolf
Das umfassende Handbuch – 2., aktualisierte und erweiterte Auflage 2006
Buch: Linux-UNIX-Programmierung

Linux-UNIX-Programmierung
1216 S., mit CD, 49,90 Euro
Rheinwerk Computing
ISBN 3-89842-749-8
gp Kapitel 7 Dämonen, Zombies und Prozesse
  gp 7.1 Was ist ein Prozess?
  gp 7.2 Prozesskomponente
    gp 7.2.1 Prozessnummer (PID)
    gp 7.2.2 Prozessnummer des Vaterprozesses (PPID)
    gp 7.2.3 Benutzer- und Gruppennummer eines Prozesses (UID, EUID, GID, EGID)
    gp 7.2.4 Prozessstatus
    gp 7.2.5 Prozesspriorität
    gp 7.2.6 Timesharing-Prozesse
    gp 7.2.7 Prozessauslagerung
    gp 7.2.8 Steuerterminal
  gp 7.3 Prozesse überwachen – ps, top, kpm
  gp 7.4 Lebenszyklus eines Prozesses
  gp 7.5 Umgebungsvariablen eines Prozesses
    gp 7.5.1 Einzelne Umgebungsvariablen abfragen
    gp 7.5.2 Umgebungsvariable verändern oder hinzufügen – putenv() und setenv()
    gp 7.5.3 Löschen von Umgebungsvariablen – unsetenv() und clearenv()
  gp 7.6 Ressourcenlimits eines Prozesses
    gp 7.6.1 Mehr Sicherheit mit Ressourcenlimits
  gp 7.7 Prozesserkennung
  gp 7.8 Erzeugung von Prozessen – fork()
    gp 7.8.1 Pufferung
    gp 7.8.2 Was wird vererbt und was nicht?
    gp 7.8.3 Einen Prozess mit veränderter Priorität erzeugen
  gp 7.9 Warten auf einen Prozess
  gp 7.10 Die exec-Familie
    gp 7.10.1 execl()
    gp 7.10.2 execve()
    gp 7.10.3 execv()
    gp 7.10.4 execle()
    gp 7.10.5 execlp()
    gp 7.10.6 execvp()
    gp 7.10.7 Kindprozesse mit exec-Aufruf überlagern
  gp 7.11 Kommandoaufrufe aus dem Programm – system()
  gp 7.12 Dämonprozesse
    gp 7.12.1 Wie ein Prozess zum Dämon wird ...
    gp 7.12.2 Dämon, sprich mit uns ...
    gp 7.12.3 Protokollieren von Dämonen – syslog()
    gp 7.12.4 syslog() in der Praxis
    gp 7.12.5 Den Dämon, den ich rief ...
  gp 7.13 Rund um die Ausführung von Prozessen
    gp 7.13.1 Einen Dämon beim Booten mit einem init-Skript starten
    gp 7.13.2 Hintergrundprozesse und Jobkontrolle
    gp 7.13.3 Prozesse zeitgesteuert ausführen (cron-Jobs)
  gp 7.14 Zusammenfassung und Ausblick


Rheinwerk Computing

7.3 Prozesse überwachen – ps, top, kpm  toptop

Das Kommando ps liefert Ihnen Informationen über den Status von aktiven Prozessen und ist eines der wichtigsten Tools für den Systemadministrator. Mit ps lassen sich die aktuelle PID, die UID, der Steuerterminal, der Speicherbedarf eines Prozesses, die CPU-Zeit, der aktuelle Status des Prozesses und noch eine Menge mehr anzeigen. Das Kommando ist leider über die vielen Jahre hinweg etwas unübersichtlich geworden und besitzt unüberschaubar viele Optionen, wobei einige ohne ein führendes Minuszeichen, andere mit dem führenden Minuszeichen und wiederum weitere Optionen mit zwei führenden Minuszeichen aufgerufen werden. Da ich Ihnen hier keine Kommandoreferenz liefern will, seien Ihnen für die einzelnen Optionen die Manual Pages von ps ans Herz gelegt. Das Kommando ps steht für eine Abkürzung von print process status. Ich will Ihnen hier nur kurz die Bedeutungen der Ausgabe von ps erklären. Im Beispiel wird die Option -lf verwendet, womit Sie eine vollständige und ausführliche Informationsliste erhalten. Mit »ps x« werden die Prozesse angezeigt, die kein CTTY haben.


Hinweis   In Wirklichkeit gibt es keine echten, d. h. antiken Terminals mehr; jedoch ist ein Terminal eigentlich nur die Bezeichnung für »Ein- und Ausgabegerät«. Selbst z. B. ein Telefon wäre – und eigentlich ist – ein Terminal, mit Ein- und Ausgabe (Sprechen/Hören). Abbildungen von echten antiken Terminals finden Sie z. B. hier: http://www.schrotthal.de/dec/terminal/.


Geben Sie z. B. in einem Xterm folgendes ps-Kommando ein:

$ ps x -lf
F S UID  PID  PPID C PRI NI ADDR SZ WCHAN  STIME TTY   TIME CMD
...

Sie erhalten eine ganze Palette von Informationen zu den laufenden Prozessen auf Ihrem Rechner. Einige dieser Spalten mit Überschriften und deren Bedeutung können Sie der folgenden Tabelle entnehmen.


Tabelle 7.2    Bedeutung einiger Spalten bei der Ausgabe mit ps

Zeichen Bedeutung
S oder auch STAT Prozesszustand: S – sleeping (Prozess schläft) D – Prozess ist in einem ununterbrechbaren Schlaf I – idle (Prozess wird gerade erzeugt) L – locked (eine Seite im Hauptspeicher wurde gesperrt) O – Prozess, der gerade die CPU beansprucht R – running (Prozess wartet auf den Prozessor)
S oder auch STAT (Forts.) Z – Zombie (Prozess wurde beendet, aber Elternprozess hat noch nicht aufgeräumt) X – Prozess wartet auf freien Speicher T – Unterbrochen (gestoppt) W – Prozess ist ausgelagert
UID UID des Prozessbesitzers (mit der Option -f wird der Name angegeben)
PID Prozessnummer
PRI Priorität (große Nummer = kleinerer Nice-Wert)
NI nice-Wert
SZ bzw. VSZ virtuelle Prozessgröße in Seiten (KB, auf Pages aufgerundet)
ADDR Speicheradresse des Prozesses
WCHAN Funktion im Kernelspace, in welcher der Prozess sich gerade befindet. Ist der Prozess im Userspace, ist dieses Feld leer
STIME Wann der Prozess gestartet wurde, in HH:MM:SS
TIME Wie lange der Prozess bereits die CPU benötigt (MM:SS), wobei die Minuten/Sekunden der Zeit entsprechen, die der Prozess gebraucht hätte, hätte er die CPU die ganze Zeit mit 100 % beansprucht
TTY Steuerterminal ŕ bei ? ist kein Steuerterminal mit dem Prozess assoziiert. In den meisten Fällen handelt es sich dabei um einen Dämonprozess.
CMD Kommandoname des Prozesses

Weitere gängige Überschriften und deren Bedeutung (z. B. mit ps aux) sind:


Tabelle 7.3    Weitere Bedeutungen der Ausgabe von ps

Zeichen Bedeutung
USER Prozesseigentümer
%CPU CPU-Belastung (Decaying Average-Modell) des Prozesses in Prozent
%MEM Speicherbelastung des Prozesses in Prozent des physikalischen Speichers
VSZ virtuelle Prozessgröße in KB
RSS Anzahl von KB-Pages im Speicher (physikalischer RAM, nicht Swap)

Das %CPU-Feld mag nicht immer stimmen (es ist möglich, dass zwei Prozesse mit je 80 % aufgelistet werden, was auf einem Uniprozessor nicht möglich ist), das liegt an dem mathematischen Algorithmus, der hier angewandt wird. Wie schon dessen Name »Decaying Average« sagt, ist dieser Wert ein Durchschnitt über die Zeit. top zeigt die Prozentwerte, wie man es erwartet, also mit einem »punktgenauen« Algorithmus auf die letzten drei (einstellbaren) Sekunden.

Wie schon bereits zu Beginn erwähnt, ist das Kommando ps mittlerweile ein ziemlicher Dschungel geworden, so dass es sinnvoll sein kann, sich intensiver mit diesem Kommando auseinander zu setzen.

Da ps nur den momentanen Prozesszustand ausgibt, lässt sich eigentlich schwer sagen, was genau passiert. Wollen Sie die Prozesse aktiv und dauerhaft überwachen, dann ist das Kommando top Ihr Freund. Gewöhnlich aktualisiert top alle drei Sekunden die Anzeige und benötigt somit auch relativ wenige Systemressourcen. Außerdem können Sie mit diesem Überwachungsprogramm auch Signale senden und ein renice ausführen. Drücken Sie einfach während der Ausführung von top (h) für mehr Informationen.

Natürlich stehen Ihnen auch komfortablere Programme zur Prozessüberwachung mit einer grafischen Oberfläche zur Verfügung. Bei GNOME wäre dies z. B. gtop und bei KDE ktop und ksysguard. Die grafischen Frontends sind natürlich auch wesentlich einfacher zu bedienen und bieten auch weit mehr Komfort. Damit lassen sich verrückt spielende Prozesse mit einem Mausklick »killen«, sofern solche verrückten Prozesse top oder ihren grafischen Brüdern noch ein bisschen Prozessorzeit überlassen.


Hinweis   Da X einiges an Ressourcen verwendet, ist man natürlich mit top im Pseudoterminal wesentlich schneller unterwegs …


 << zurück
  
  Zum Rheinwerk-Shop
Neuauflage: Linux-UNIX-Programmierung
Neuauflage:
Linux-UNIX-
Programmierung

bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Linux-Server






 Linux-Server


Zum Rheinwerk-Shop: Das Komplettpaket LPIC-1 & LPIC-2






 Das Komplettpaket
 LPIC-1 & LPIC-2


Zum Rheinwerk-Shop: Linux-Hochverfügbarkeit






 Linux-
 Hochverfügbarkeit


Zum Rheinwerk-Shop: Shell-Programmierung






 Shell-
 Programmierung


Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
Info





Copyright © Rheinwerk Verlag GmbH 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern