Dieses Handbuch wird mit freundlicher Genehmigung von Sebastian Hetze auf den Servern der Linux Information Systems AG gehosted.

next up previous contents index
Next: pwd Up: Von GNU's, Muscheln und Previous: printenv

Subsections


ps

       

Funktion:

ps (process status) zeigt die Prozesse mit ihrem Status an

Syntax:

ps -acehjlmnrsuvwxS -txx Systempfad Swappfad

Beschreibung:

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)

Optionen:

-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

Autor:

Branko Lankester, Michael K. Johnson, Rick Sladkey  


next up previous contents index
Next: pwd Up: Von GNU's, Muscheln und Previous: printenv

Das Linux Anwenderhandbuch
(C) 1997 LunetIX