Prozeßtabelle listen: Das Kommando ps
CIP Index Up Left Right

Prozeßtabelle mit ps listen

Das Betriebssystem führt intern eine Liste aller Prozesse, über die man alle Verwaltungsdaten eines Prozesses erreichen kann. Die wichtigste davon ist die PID, eine Integerzahl, die den Prozeß eindeutig kennzeichnet. Daneben gibt es noch den Status, zugehöriges Terminal, Prozeßnummer des Prozeß-Vaters, Benutzernummer, Priorität uvm.

Mit dem Kommando ps kann man sich Ausschnitte dieser Liste anzeigen lassen. Anders als jobs, ist dieses Kommando nicht Shell-intern. Es liest seine Daten direkt aus dem Datenbereich des Betriebssystems. Das Problem hierbei ist, daß es sehr unterschiedliche Optionen unter verschiedenen UNIX-Derivaten hat. Deshalb wird im folgenden für System-V (HP- und SGI-Rechner) und BSD (bzw. SunOS) getrennt beschrieben.

Gibt man einfach ps ein, so wird nur der Status der Prozesse ausgegeben, die von der Shell, auf der man das ps-Kommando startet, gestartet wurden. Das sind also mindestens die Shell selbst und der ps-Prozess. Man bekommt eine Liste aller seiner Prozesse auf diesem Rechner mit der Option -x (BSD) bzw. -u loginname (SysV).

Normalerweise bekommt man nur eine kurze Ausgabe mit Angaben je Prozeß über PID (Prozeßnummer: dies ist eine Verwaltungsnummer des Betriebssystems. Man braucht diese Nummer z.B. für das kill Kommando), TTY (Terminal von dem aus das Kommando gestartet wurde), Status (nur BSD: z.B. S für Suspended, oder R für Running), TIME (verbrauchte Rechenzeit) und COMMAND (Kommandoname und alle Parameter).

Man kann ausführlichere Informationen erhalten mit der Option -f (SysV) bzw. -l (BSD), die jedoch für den Anfänger noch nicht so interessant sind.

Ein Listing aller Prozesse auf dem System erhält man mit

  ps -auxww   (BSD: SunOS)
  ps -ef      (System V: HP-UX, IRIX)

Siehe auch:
Manpage ps
top(1): Sortierte Liste der aktiven Prozesse
glance(1): Übersicht Systemauslastung (nur HP)
w(1): Wer ist eingeloggt und welche Prozesse lassen sie laufen?