Next: pwd
Up: Von GNU's, Muscheln und
Previous: printenv
Subsections
ps (process status) zeigt die Prozesse mit ihrem Status an
ps -acehjlmnrsuvwxS
-txx Systempfad Swappfad
Mit ps lassen sich Daten über
die Prozesse in der Prozeßtabelle anzeigen.
Es gibt zwei unterschiedliche Versionen von ps. Das eine ps greift direkt auf den Kernelspeicher zu, aus dem es die
Prozeßtabelle und andere Daten ausliest. Dazu braucht ps die
Datei /etc/psdatabase, in der die Speicheradressen für die
entsprechenden Kernelvariablen abgelegt sind. Diese Datei muß für
jeden Kernel mit dem Kommando `ps -U' neu erzeugt werden. Bei
größeren Veränderungen am Kernel (in der Regel bei neuen
Kernelversionen) wird auch ein Neuübersetzen von ps notwendig.
Das andere ps hat die gleiche Funktionalität und mit Ausnahme
der -U Option auch die gleichen Optionen, es arbeitet aber mit
dem Prozeßdateisystem. Dieses Dateisystem enthält
Verzeichnisse für alle Prozesse des Systems, in deren
Unterverzeichnissen und Dateien alle für ps relevanten Daten zu
finden sind. Das ps-Kommando bereitet diese Daten auf und zeigt
sie dem Anwender in der gleichen Weise an wie die andere Version. Der
Vorteil der Methode mit dem Prozeßdateisystem besteht in der
Unabhängigkeit von der Kernelversion.
Die beiden Versionen von ps unterscheiden sich in verschiedenen
Details bei den Ausgabeformaten und in den Kommandozeilenoptionen.
Die Beschreibung hier bezieht sich hauptsächlich auf das procps.
Die Optionen und Ausgabeformate des kernelabhängigen ps werden
nur am Rande und unvollständig dokumentiert.
Die Prozeßtabelle wird mit einer Titelzeile ausgegeben. Die Spalten
bedeuten folgendes:
- COMMAND
- der Name des Kommandos; Prozesse, die komplett in den
Swapbereich ausgelagert sind, werden in Klammern angezeigt
- TIME
- die verbrauchte Rechenzeit (Summe User- und Kernelmodus)
im Format MM:SS
- TT
- die Nummer des kontrollierenden Terminals
- UID
- die Benutzer-ID des Eigentümers dieses Prozesses
- PID
- die Prozeßnummer dieses Prozesses
- PPID
- die Prozeßnummer des Elternprozesses
- PGID
- die Prozeßgruppe dieses Prozesses
- TPGID
- die Prozeßgruppe, der z. Z. das kontrollierende
Terminal zu diesem Prozeß gehört
- SID
- die Session-ID des Prozesses (ID der Loginshell)
- STAT
- ist der Status des Prozesses; folgende Symbole sind möglich:
- R
- lauffähig
- S
- schlafend
- D
- nicht störbarer Schlaf
- T
- angehalten oder verfolgt
- Z
- Zombie
Die folgenden Statusinformationen werden vom procps nicht angeboten.
- W
- der Prozeß belegt keine
Seiten im Arbeitsspeicher
- I
- (idle) der Prozeß läuft leer
- P
- der Prozeß wird gerade in den Swapbereich ausgelagert
- x
- der Prozeß wird mit dem Debugger verfolgt
- X
- die System-Calls werden verfolgt
- s
- der Prozeß führt eine neue Session an
- +
- der Prozeß ist in einer Prozeßgruppe im Vordergrund
- <
- kennzeichnet die Prozesse mit höherer Priorität
- N
- kennzeichnet die Prozesse mit verminderter Priorität
- F
- die Flags des Prozesses
- 10
- der Prozeß wird verfolgt (traced); das ist
z. B. im Debugger der Fall
- 20
- die System-Calls des Prozesses werden verfolgt
- 40
- der Prozeß hat sich selbst von seinem Elternprozeß gelöst
(häufig bei Dämonen)
- 100
- der Prozeß läuft mit Rootrechten
- 200
- der Prozeß hat einen Coredump ausgelöst
- 400
- der Prozeß wird durch ein Signal beendet
- 100000
- Prozeß hat die FPU (den mathematischen Coprozessor) benutzt
- PRI
- das aktuelle Maximum an Rechenzeit (in
Millisekunden), das dem Prozeß zugeteilt wird; wenn der Prozeß
gerade läuft, ist das der Rest von der Zeitscheibe
- NI
- ist der Nicewert des Prozesses; dieser Wert kann die
Geschwindigkeit erhöhen oder verringern, in der die Zeitscheibe eines
Prozesses verbraucht wird
- MAJFLT
- (auch PAGEIN) Anzahl der ,,major page
faults`` (das sind die Versuche, auf eine ausgelagerte Seite
zuzugreifen)
- MINFLT
- Anzahl der ,,minor page faults``; diese Zugriffe hatten
keine Hardwareaktion zur Folge
- TSIZ
- (Textsize) die Größe des Textsegmentes der ausführbaren Datei
- DSIZ
- (Datasize) die Differenz aus vsize (virtuelle Größe des
Prozesses) und TSIZ
- RSS
- (Resident Set Size) ist die Größe des Programms im
Arbeitsspeicher; dieser Wert wird aus dem task_struct errechnet und ist
nicht mit dem RSS Feld in statm identisch
- SIZE
- der ,,virtuelle`` Speicherbereich des Prozesses
- STACK
- zeigt auf die Basis des nach unten wachsenden Stack
- LIM
- zeigt den mit ulimit -m eingestellten Grenzwert für
den Resident Stack Size
- %MEM
-
- ESP
- (Extended Stack Pointer) zeigt auf die Spitze des nach
unten wachsenden Stack
- EIP
- (Extended Instruction Pointer) zeigt auf den aktuellen
Maschinenbefehl im Programmtext (<0x60000000) oder in den Shared
Libraries (>0x60000000)
- TMOUT
- zeigt den Wert eines eventuell gesetzten Timeouts
- ALARM
- zeigt den Wert eines eventuell gesetzten Alarmtimers
(z. B. von sleep)
- SIGNAL
- zeigt ein eventuell gerade anliegendes Signal
- BLOCKED
- Bitmaske der blockierten Signale
- IGNORED
- Bitmaske der Signale, die ignoriert werden
- CATCHED
- Bitmaske für Signale, die abgefangen werden
- WCHAN
- ist der Name der Kernelfunktion, in der der Prozeß
schläft
Die folgenden Werte werden mit der -m Option angezeigt. Sie
geben detailliert Auskunft über die Speicherauslastung durch die
einzelnen Prozesse. Die Werte für SIZE und RSS werden auch
mit anderen Optionen angezeigt, die mit der -m Option
ausgegebenen Werte werden auf eine andere Weise berechnet.
- TRS
- (Text Resident Size) Größe des
Textsegments (enthält keine shared Libraries)
- DRS
- (Data Resident Size, auch DSIZ) Größe des
Datensegments (enthält benutzte Libraryseiten)
- SIZE
- die Speicherbelegung des Prozesses; Text, Daten und
Stack unabhängig davon, ob sie sich im physikalischen Speicher
befinden
- SWAP
- ausgelagerte Speicherseiten in Kilobyte (oder Seiten mit
-p); ist einfach die Differenz aus SIZE und RSS
- RSS
- (Resident Set Size)
- SHRD
- die Größe des mit mindestens einem anderen Prozeß
gemeinsam benutzten Speicherbereiches
- LIB
- (Library Resdident Size) die gesamte Größe der vom Prozeß
benutzten Libraryseiten im Arbeitsspeicher
- DT
- (Dirty) benutzte Libraryseiten in Kilobyte (oder Seiten mit -p)
- -a
- zeigt die Prozesse aller User
- -c
- zeigt den Namen des Kommandos
- -e
- zeigt die Prozeßumgebung
- -h
- unterdrückt die Kopfzeile
- -j
- jobs Format: PGID und SID
- -l
- langes Format: FLAGS WCHAN NICE PRIO
- -m
- zeigt Speichernutzung
- -X
- zeigt EIP ESP TIMEOUT und ALARM
- -n
- gibt numerische Werte für USER und WCHAN
- -r
- zeigt nur die laufenden Prozesse
- -s
- zeigt die Signale
- -u
- zeigt die Besitzer der Prozesse
- -v
- vm Format
- -w
- ,,breite`` Ausgabe, kann bis zu drei mal angegeben werden;
die Ausgabezeilenlänge wird auf 132 Spalten, 264 Spalten und
unbegrenzt erhöht
- -x
- zeigt Prozesse, die von keinem Terminal kontrolliert werden
- -S
- addiert die Prozessorzeit der Kindprozesse zu den Eltern
- t xx
- zeigt nur die Prozesse, die von Terminal
xx kontrolliert werden
Folgende Optionen werden nur vom kernelabhängigen ps zusätzlich angeboten:
- -0
- der Prozeß Nummer 0 (scheduler) wird mit angezeigt
- -f
- (forest) zeigt die Prozeßfamilien mit ihren
Eltern-Kind-Beziehungen als Bäume
- -H
- gibt einen kurzen Hilfstext zum ps-Kommando aus
- -p
- veranlaßt ps die Speicherbelegung in Seiten und nicht
in Kilobytes anzuzueigen
- -U
- aktualisiert die Datei /etc/psdatebase, die den Zugang zu den
Kerneldaten vermittelt; diese Aktualisierung muß immer durchgeführt
werden, nachdem der Kernel neu übersetzt wurde; diese Option fällt bei
dem ps Programm ,das mit dem Prozeßdateisystem arbeitet,
weg
- -y
- zeigt den Syscall, in dem der Prozeß gerade schläft oder
den er gerade verlassen hat
Branko Lankester, Michael K. Johnson, Rick Sladkey
Next: pwd
Up: Von GNU's, Muscheln und
Previous: printenv
Das Linux Anwenderhandbuch
(C) 1997
LunetIX