PS(1)

BEZEICHNUNG
ps - Prozeßstatus berichten

ÜBERSICHT
ps [optionen]

BESCHREIBUNG
ps zeigt eine Momentaufnahme der aktuellen Prozesse. Wenn Sie eine fortlaufende Aktualisierung der Ausgabe wünschen, verwenden Sie top. Diese Handbuchseite beschreibt die /proc-basierte Version von ps bzw. versucht dieses.

OPTIONEN
Diese Version von ps unterstützt verschiedene Arten von Optionen. Unix-Optionen dürfen gruppiert werden und müssen einen Bindestrich vorangestellt haben. BSD-Optionen dürfen gruppiert werden und dürfen keinen Bindestrich vorangestellt haben. Langen GNU-Optionen sind zwei Bindestriche vorangestellt. Optionen der verschiedenen Arten dürfen beliebig gemischt werden. Setzen Sie die Umgebungsvariable I_WANT_A_BROKEN_PS, wenn Sie die BSD-Syntax auch dann erzwingen möchten, wenn Optionen ein Bindestrich vorangestellt ist. Die Umgebungsvariable PS_PERSONALITY (siehe weiter unten) bietet eine detailiertere Kontrolle des Verhaltens. EINFACHE PROZESSAUSWAHL
-A | Wählt alle Prozesse aus
-N | Negative Auswahl
-a | Wählt alle mit einem tty bis auf Session-Leiter
-d | Wählt alle, bis auf Session-Leiter aus
-e | Wählt alle Prozesse aus
T | Wählt alle Prozess für dieses Terminal aus
a | Wählt alle Prozesse mit einem Terminal aus, inklusive der anderer Benutzer
g | Wirklich alle, auch Prozeßgruppen-Leiter (hat nicht zu tun mit SunOS-Einstellungen)
r | Beschränkt die Ausgabe auf laufende Prozesse
x | Wählt Prozesse ohne kontrollierende ttys
--deselect | Negative Auswahl
PROZESSAUSWAHL ÜBER LISTE
-C | Auswahl über Befehlsnamen
-G | Auswahl über RGID (unterstützt Namen)
-U | Auswahl über RUID (unterstützt Namen)
-g | Auswahl über Session-Leiter oder über Gruppennamen
-p | Auswahl über PID
-s | Wählt Prozesse, die zu der gegebenen Session gehören
-t | Auswahl über tty
-u | Auswahl über effektive User-ID (unterstützt Namen)
U | Wählt Prozesse für die angegebenen Benutzer aus
p | Auswahl über Prozeß-ID
t | Auswahl über tty
--Group | Auswahl über tatsächlichen Gruppennamen oder ID
--User | Auswahl über tatsächlichen Benutzernamen oder ID
--group | Auswahl über effektiven Gruppennamen oder ID
--pid | Auswahl über Prozeß-ID
--sid | Auswahl über Session-ID
--tty | Auswahl über Terminal
--user | Auswahl über effektiven Benutzernamen oder ID
-123 | impliziert --sid
123 | impliziert --pid
STEUERUNG DES AUSGABE-FORMATES
-O | wird vor "-o" geladen
-c | unterschiedliche Informationen vom Scheduler bei der -l-Option
-f | komplette Ausgabe
-j | Jobs-Format
-l | langes Format
-o | Benutzer-definiertes Format
-y | keine Flags anzeigen; rss anstelle von addr
O | wird vor "o" geladen (überladen)
X | altes Linux-i386 Register-Format
j | Job-Control-Format
l | langes Format
o | Benutzer-definiertes Format
s | Signal-Format
u | Benutzer-definiertes Format
v | Virtual-Memory-Format
--format | Benutzer-definiertes Format
AUSGABE-MODIFIKATOREN OUTPUT MODIFIERS
-H | Zeigt die Prozeß-Hierarchie (Wald)
-m | Zeigt Threads
-n, N | Setzt die Namelist-Datei
-w, w | Breite Ausgabe
C | Reine CPU-Zeit für %CPU anzeigen anstatt des Durchschnitts
O | Sortierreihenfolge (überladen)
S,
--cumulative | Daten von toten Kindern einbeziehen (als Summe zusammen mit den Eltern)
c | tatsáchlichen Befehlsnamen anzeigen
e | Umgebung nach dem Befehl anzeigen
f, --forest | Prozeßhierachie als ASCII-Kunst (Wald)
h | keine Kopfzeilen (bzw. eine Kopfzeile pro Seite in BSD-Personalität)
m | alle Threads
n | Numerische Ausgabe von WCHAN und USER
--cols,
--columns,
--width | Bildschirmbreite festlegen
--html | HTML-Ausgabe
--headers | Kopfzeilen wiederholen, eine pro Ausgabeseite
--no-headers | print no header line at all
--lines,
--rows | Bildschirmhöhe festlegen
--nul, --null,
--zero | unausgerichtete Ausgabe mit NULs
--sort | Sortierreihenfolge angeben
INFORMATIONEN
-V, V,
--version | gibt die Version aus
L | Alle Format-Bezeichner auflisten
--help | Hilfetext ausgeben
--info | Debuginformationen ausgeben
VERALTET
A | Platz für Argumente vergrößern (DecUnix)
M | Alternativen Kern benutzen (versuchen Sie stattdessen -n oder N)
W | Swap-Informationen von .... lesen, nicht von /dev/drum (versuchen Sie stattdessen -n oder N)
k | /vmcore anstatt c-dumpfile benutzen (versuchen Sie stattdessen -n oder N)

ANMERKUNGEN
Die Option -g kann nach Session-Leiter oder nach Namen der Gruppe auswählen. Die Auswahl nach Session-Leiter wird von vielen Standards beschrieben, die Auswahl nach Gruppe ist jedoch das logische Verhalten, das viele andere Betriebssysteme unterstützen. Dieses ps wird nach Session-Leiter auswählen, wenn die Liste numerisch ist (wie Sessions auch). Gruppen-ID-Zahlen werden nur dann unterstützt, wenn gleichzeitig auch Namen angegeben werden. Die Option m sollte nicht verwendet werden. Benutzen Sie -m oder -o zusammen mit einer Liste. (-m zeigt Informationen über den Speicher an, zeigt Threads oder sortiert nach Speicherbedarf). Die Option h ist problematisch. Das ps von BSD verwendet die Option, um eine Kopfzeile auf jeder Ausgabe anzuzeigen, ältere Linux-Versionen von ps verwenden diese Option, um Kopfzeilen komplett abzustellen. Diese Version von ps folgt der Linux-Verwendung und zeigt keine Kopfzeilen an, solange nicht BSD-Personalität eingeschaltet ist, in welchem Fall Kopfzeilen auf jeder Seite ausgegeben werden. Unabhängig von der aktuellen Personalität, dürfen Sie die langen Optionen --header und --no-header verwenden, um Kopfzeilen ein- bzw. auszuschalten. Terminals (ttys oder Bildschirme für textuelle Ausgaben) werden in verschiedenen Arten angegeben: /dev/ttyS1, ttyS1, S1. Veraltete Syntax ps t (das eigene Terminal) sowie ps t? (ohne Terminal arbeiten) werden untestützt, jedoch sollten stattdessen die moderneren Optionen (T, -t mit Liste, x, t mit Liste) verwendet werden. Die BSD-Option O kann sich wie -O verhalten (Benutzer-definiertes Ausgabeformat mit einigen üblichen Feldern vordefiniert) oder kann verwendet werden, um die Sortierreihenfolge anzugeben. Heuristiken werden verwendet, um das Verhalten dieser Option zu bestimmen. Um sicherzugehen, daß das gewünschte Verhalten ausgewählt wird, geben Sie die andere option (Sortieren oder Formatieren) auf eine andere Art an. Bezüglich Sortierung, die Syntax der BSD-Option O ist O[+|-]k1[,[+|-]k2[,...]]. Sortieren der Prozeßliste wie in der mehrstufigen Sortierung angegeben, die durch die Sequenz der Kürzel von SORTIERSCHLÜSSEL k1, k2, ... angegeben wurde. Das `+' ist optional, wiederholt lediglich die voreingestellte Reihenfolge der Schlüssel, dem es vorangestelltist. Das `-' dreht die Sortierreihenfolge des einen Schlüssels um, dem es vorangestellt ist. Die Option O muß die letzte Option in einem zusammengefaßten Argument sein, aufeinanderfolgende Argumente werden zusammengefaßt. Die GNU-Sortier-Syntax ist --sortX[+|-]key[,[+|-]key[,...]]. Wählen Sie einen Schlüssel aus SORTIERSCHLÜSSEL aus, der aus mehreren Zeichen besteht. X darf ein beliebiges Zeichen sein, das zur Trennung verwendet wird. Um GNU-ish zu bleiben, verwenden Sie `='. Das `+'ist wirklich optional, da die voreingestellte Sortierrichtung aufsteigend ist, numerisch oder lexikografisch. Beispiel: ps jax --sort=uid,-ppid,+pid Dieses ps arbeitet, indem es die virtuellen Dateien in /proc liest. Dieses ps muß daher nicht mehr suid kmem sein oder andere Privilegien besitzen, um zu laufen. Geben Sie diesem ps keine speziellen Berechtigungen. Dieses ps benötigt Zugriff auf eine Namensliste, um WCHAN vernünftig darzustellen. Diese Liste muß genau zum aktuellen Linux Kernel passen. Um WCHAN-Felder zu erzeugen, muß ps die Datei System.map lesen können, die zusammen mit dem Kernel erzeugt wurde. Die folgenden Pfade werden der Reihe nach ausprobiert. $PS_SYSTEM_MAP
/boot/System.map-`uname -r`
/boot/System.map
/lib/modules/`uname -r`/System.map
/usr/src/linux/System.map Das Element used_math von task_struct wird nicht angezeigt, da crt0.s überprüft, ob math vorhanden ist. Daher ist das math-Flag für alle Prozesse gesetzt, und daher wertlos. (Irgendjemand sollte mal bitte die libc oder den Kernel korrigieren) Programme, die auf Platte ausgelagert sind, werden ohne Kommandozeilenargumente angezeigt, und, sofern nicht die Option c gegeben wurde, auch in Klammern. %CPU zeigt die prozentuale CPU-Zeit/Realzeit an. Die Summe wird nur manchmal 100% ergeben. Es ist die verbrauchte Zeit, geteilt durch die Zeit, die der Prozeß am laufen ist. Die Felder SIZE und RSS zählen die Seiten-Tabellen und die task_struct eines Prozesses nicht.; es sind zumindest 12k Speicher, die immer resident sind. SIZE ist die virtuelle Größe des Prozesses (Code+Daten+Stack). Prozesse, die als <defunct> markiert sind, sind tote Prozesse (sogenannte "Zombies"), die zurückbleiben, da die Elternprozesse sie nicht ordentlich zerstört haben. Diese Prozesse werden von init(8) zerstört, wenn die Elternprozesse beendet werden. PROZESS-FLAGS
ALIGNWARN | 001 | print alignment warning msgs
STARTING | 002 | being created
EXITING | 004 | getting shut down
PTRACED | 010 | set if ptrace (0) has been called
TRACESYS | 020 | tracing system calls
FORKNOEXEC | 040 | forked but didn't exec
SUPERPRIV | 100 | used super-user privileges
DUMPCORE | 200 | dumped core
SIGNALED | 400 | killed by a signal
PROZESS-STATUS-WERTE
D | ununterbrechbarer Schlaf (normalerweise IO)
R | laufend (in der run-Queue)
S | schlafend
T | verfolg oder angehalten
Z | disfunktional ("Zombie")
Für BSD-Formate und wenn das "stat"-Schlüsselwort benutzt wird, werden zusätzliche Buchstaben angezeigt:
W | hat keine resident Seiten
< | Prozesse mit hoher Priorität
N | Prozesse mit geringer Priorität
L | hat gesperrte Seiten im Speicher (für Echtzeit und Benutzer-IO)

SORTIERSCHLÜSSEL
Beachten Sie, daß die Werte, die für die Sortierung verwendet werden, interne Werte von ps sind und nicht die Werte, die letztendlich ausgebeben werden. Wenn Sie nach den endgültigen Werten sortieren möchten, pipen Sie die Ausgabe durch sort(1).
SCHLÜSSEL | LANG | BESCHREIBUNG
c | cmd | einfacher Befehl des Programms
C | cmdline | komplette Kommandozeile
f | flags | Flags wie im Lang-Format-Feld F
g | pgrp | Prozeßgruppen ID
G | tpgid | Kontrollierendes tty Prozeßgruppen ID
j | cutime | gesammelte Benutzerzeit
J | cstime | gesammelte Systemzeit
k | utime | Benutzerzeit
K | stime | Systemzeit
m | min_flt | Anzahl kleiner Seiten-Fehler
M | maj_flt | Anzahl großer Seiten-Fehler
n | cmin_flt | Gesammelte kleine Seiten-Fehler
N | cmaj_flt | Gesammelte großer Seiten-Fehler
o | session | Session-ID
p | pid | Prokeß-ID
P | ppid | Prokeß-ID des Vaterprozesses
r | rss | resident set size
R | resident | residente Seiten
s | size | Speichergröße in Kilobytes
S | share | Anzahl der gemeinsam benutzten Seiten
t | tty | Untere Gerätenummer des tty's
T | start_time | Zeit, zu dem der Prozeß gestartet wurde
U | uid | Benutzer-ID
u | user | Benutzername
v | vsize | Gesamtgröße des VM in Bytes
y | priority | Kernel-Scheduling-Priorität

AIX FORMAT-BESCHREIBUNGEN
ps unterstützt AIX-Format-Beschreibungen, die ähnlich wie die Formatanweisungen von printf(1) und printf(3) funktionieren. Die voreingestellte Ausgabe kann z.B. mit der folgenden Anweisung erzeugt werden: ps -eo "%p %y %x %c"
CODE | NORMAL | HEADER
%C | pcpu | %CPU
%G | group | GROUP
%P | ppid | PPID
%U | user | USER
%a | args | COMMAND
%c | comm | COMMAND
%g | rgroup | RGROUP
%n | nice | NI
%p | pid | PID
%r | pgid | PGID
%t | etime | ELAPSED
%u | ruser | RUSER
%x | time | TIME
%y | tty | TTY
%z | vsz | VSZ

STANDARD FORMAT-BEZEICHNER
Diese dürfen dazu benutzt werden, um sowohl das Ausgabe-Format als auch die Sortierung zu bestimmen. Beispiel: ps -eo pid,user,args --sort user
CODE | HEADER
%cpu | %CPU
%mem | %MEM
alarm | ALARM
args | COMMAND
blocked | BLOCKED
bsdstart | START
bsdtime | TIME
c | C
caught | CAUGHT
cmd | CMD
comm | COMMAND
command | COMMAND
cputime | TIME
drs | DRS
dsiz | DSIZ
egid | EGID
egroup | EGROUP
eip | EIP
esp | ESP
etime | ELAPSED
euid | EUID
euser | EUSER
f | F
fgid | FGID
fgroup | FGROUP
flag | F
flags | F
fname | COMMAND
fsgid | FSGID
fsgroup | FSGROUP
fsuid | FSUID
fsuser | FSUSER
fuid | FUID
fuser | FUSER
gid | GID
group | GROUP
ignored | IGNORED
intpri | PRI
lim | LIM
longtname | TTY
lstart | STARTED
m_drs | DRS
m_trs | TRS
maj_flt | MAJFL
majflt | MAJFLT
min_flt | MINFL
minflt | MINFLT
ni | NI
nice | NI
nwchan | WCHAN
opri | PRI
pagein | PAGEIN
pcpu | %CPU
pending | PENDING
pgid | PGID
pgrp | PGRP
pid | PID
pmem | %MEM
ppid | PPID
pri | PRI
priority | PRI
rgid | RGID
rgroup | RGROUP
rss | RSS
rssize | RSS
rsz | RSZ
ruid | RUID
ruser | RUSER
s | S
sess | SESS
session | SESS
sgi_p | P
sgi_rss | RSS
sgid | SGID
sgroup | SGROUP
sid | SID
sig | PENDING
sig_block | BLOCKED
sig_catch | CATCHED
sig_ignore | IGNORED
sig_pend | SIGNAL
sigcatch | CAUGHT
sigignore | IGNORED
sigmask | BLOCKED
stackp | STACKP
start | STARTED
start_stack | STACKP
start_time | START
stat | STAT
state | S
stime | STIME
suid | SUID
suser | SUSER
svgid | SVGID
svgroup | SVGROUP
svuid | SVUID
svuser | SVUSER
sz | SZ
time | TIME
timeout | TMOUT
tmout | TMOUT
tname | TTY
tpgid | TPGID
trs | TRS
trss | TRSS
tsiz | TSIZ
tt | TT
tty | TT
tty4 | TTY
tty8 | TTY
ucmd | CMD
ucomm | COMMAND
uid | UID
uid_hack | UID
uname | USER
user | USER
vsize | VSZ
vsz | VSZ
wchan | WCHAN

UMGEBUNGSVARIABLEN
Die folgenden Umgebungsvariablen beeinflussen ps:
COLUMNS | Überschreibt die voreingestellte Bildschirmbreite
LINES | Überschreibt die voreingestellte Bildschirmhöhe
PS_PERSONALITY | Eines von posix,old,linux,bsd,sun,digital...
CMD_ENV | Eines von posix,old,linux,bsd,sun,digital...
I_WANT_A_BROKEN_PS | Erzwingt veraltete Kommandozeilenoptionen
LC_TIME | Datumsformat
PS_COLORS | Zur Zeit noch nicht unterstützt
PS_FORMAT | Überschreibt voreingestelltes Ausgabeformat
PS_SYSMAP | Ort der Namensliste (System.map)
PS_SYSTEM_MAP | Ort der Namensliste (System.map)
POSIXLY_CORRECT | Keine Entschuldigungen für schlechte "Fähigkeiten" finden
UNIX95 | Keine Entschuldigungen für schlechte "Fähigkeiten" finden
_XPG | Nicht-Standard CMD_ENV=irix-Verhalten aufheben
Generell ist es keine gute Idee, diese Variablen zu setzen. die Ausnahme bilden CMD_ENV und PS_PERSONALITY, die auf Linux für normale Systeme gesetzt werden können. Ohne diese Einstellung folgt ps den sinnlosen und schlechten Teilen des Unix98-Standards. PERSONALITÄT
aix | wie AIX ps
bsd | wie FreeBSD ps (absolut non-standard)
compaq | wie Digital Unix ps
debian | wie das alte Debian ps
digital | wie Digital Unix ps
gnu | wie das alte Debian ps
hp | wie HP-UX ps
hpux | wie HP-UX ps
irix | wie Irix ps
linux | ***** EMPFOHLEN *****
old | wie die anderen original Linux ps (absolut non-standard)
posix | standard
sco | wie SCO ps
sgi | wie Irix ps
sun | wie SunOS 4 ps (absolut | non-standard)
sunos | wie SunOS 4 ps (absolut | non-standard)
sysv | standard
unix | standard
unix95 | standard
unix98 | standard

BEISPIELE
Alle Prozesse auf dem System anzeigen mit der Standard-Syntax:
    ps -e
Alle Prozesse auf dem System anzeigen mit der BSD-Syntax:
    ps ax
Alle Prozesse anzeigen bis auf diejenigen, die als root laufen (reale und tatsächliche ID):
    ps -U root -u root -N
Alle Prozesse mit einem Benutzerdefinierten Format anzeigen:
    ps -eo pid,tt,user,fname,tmout,f,wchan
Ungewohnte Ausgabe mit AIX-Feldbeschreibungen:
    ps -o "%u : %U : %p : %a"
Nut die Prozeß-ID vom syslogd ausgeben:
    ps -C syslogd -o pid=

KONFORM ZU
Dieses ps ist konform zu Version 3 der Single Unix Specification.

AUTOR
ps wurde ursprünglich von Branko Lankester <lankeste@fwi.uva.nl> geschrieben. Michael K. Johnson <johnsonm@redhat.com> hat es signifikant reipmlementiert, um das /proc-Dateisystem zu unterstützen. Michael Shields <mjshield@nyx.cs.du.edu> ergänzte die PID-Listen. Charles Blake <cblake@bbn.com> ergänzte mehrstufige Sortierung, die dirent-style Bibliothek, die Gerätename-zu-Nummer Datenbank (mmap), die annähernde Binärsuche direkt auf System.map, sowie viele Code- und Dokumentationskorrekturen. David Mossberger-Tang schrieb die generische BFD-Unterstützung für psupdate. Albert Cahalan <acahalan@cs.uml.edu> schrieb ps um, um komplette Unterstützung von Unix98 und BSD zu erhalten, zusammen mit einigen häßlichen Hacks für veraltete und unbekannte Syntax. Bitte schicken Sie Fehlerberichte an <acahalan@cs.uml.edu> oder verwenden Sie das Debian Bug Tracking System.

SIEHE AUCH
top(1), pstree(1), proc(5).