ps(1) Prozessstatus 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 detailliertere Kontrolle des Verhaltens.

EINFACHE PROZESSAUSWAHL

-AWählt alle Prozesse aus
-NNegative Auswahl
-aWählt alle mit einem tty bis auf Session-Leiter
-dWählt alle, bis auf Session-Leiter aus
-eWählt alle Prozesse aus
TWählt alle Prozess für dieses Terminal aus
aWählt alle Prozesse mit einem Terminal aus, inklusive der anderer Benutzer
gWirklich alle, auch Prozessgruppen-Leiter (hat nicht zu tun mit SunOS-Einstellungen)
rBeschränkt die Ausgabe auf laufende Prozesse
xWählt Prozesse ohne kontrollierende ttys
--deselectNegative Auswahl

PROZESSAUSWAHL ÜBER LISTE

-CAuswahl über Befehlsnamen
-GAuswahl über RGID (unterstützt Namen)
-UAuswahl über RUID (unterstützt Namen)
-gAuswahl über Session-Leiter oder über Gruppennamen
-pAuswahl über PID
-sWählt Prozesse, die zu der gegebenen Session gehören
-tAuswahl über tty
-uAuswahl über effektive User-ID (unterstützt Namen)
UWählt Prozesse für die angegebenen Benutzer aus
pAuswahl über Prozess-ID
tAuswahl über tty
--GroupAuswahl über tatsächlichen Gruppennamen oder ID
--UserAuswahl über tatsächlichen Benutzernamen oder ID
--groupAuswahl über effektiven Gruppennamen oder ID
--pidAuswahl über Prozess-ID
--sidAuswahl über Session-ID
--ttyAuswahl über Terminal
--userAuswahl über effektiven Benutzernamen oder ID
-123impliziert --sid
123impliziert --pid

STEUERUNG DES AUSGABE-FORMATES

-Owird vor "-o" geladen
-cunterschiedliche Informationen vom Scheduler bei der -l-Option
-fkomplette Ausgabe
-jJobs-Format
-llanges Format
-oBenutzer-definiertes Format
-ykeine Flags anzeigen; rss anstelle von addr
Owird vor "o" geladen (überladen)
Xaltes Linux-i386 Register-Format
jJob-Control-Format
llanges Format
oBenutzer-definiertes Format
sSignal-Format
uBenutzer-definiertes Format
vVirtual-Memory-Format
--formatBenutzer-definiertes Format

AUSGABE-MODIFIKATOREN OUTPUT MODIFIERS

-HZeigt die Prozess-Hierarchie (Wald)
-mZeigt Threads
-n, NSetzt die Namelist-Datei
-w, wBreite Ausgabe
CReine CPU-Zeit für %CPU anzeigen anstatt des Durchschnitts
OSortierreihenfolge (überladen)
S,
--cumulativeDaten von toten Kind-Prozessen einbeziehen (in Summe mit den Eltern-Prozessen)
ctatsächlichen Befehlsnamen anzeigen
eUmgebung nach dem Befehl anzeigen
f, --forestProzesshierarchie als ASCII-Kunst (Wald)
hkeine Kopfzeilen (bzw. eine Kopfzeile pro Seite in BSD-Personalität)
malle Threads
nNumerische Ausgabe von WCHAN und USER
--cols,
--columns,
--widthBildschirmbreite festlegen
--htmlHTML-Ausgabe
--headersKopfzeilen wiederholen, eine pro Ausgabeseite
--no-headersprint no header line at all
--lines,
--rowsBildschirmhöhe festlegen
--nul, --null,
--zerounausgerichtete Ausgabe mit NULs
--sortSortierreihenfolge angeben

INFORMATIONEN

-V, V,
--versiongibt die Version aus
LAlle Format-Bezeichner auflisten
--helpHilfetext ausgeben
--infoDebuginformationen ausgeben

VERALTET

APlatz für Argumente vergrößern (DecUnix)
MAlternativen Kern benutzen (versuchen Sie stattdessen -n oder N)
WSwap-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 unterstü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, dass 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 Prozessliste 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 vorangestellt ist. Das `-' dreht die Sortierreihenfolge des einen Schlüssels um, dem es vorangestellt ist. Die Option O muss die letzte Option in einem zusammengefassten Argument sein, aufeinanderfolgende Argumente werden zusammengefasst.

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 muss 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 muss genau zum aktuellen Linux-Kernel passen.

Um WCHAN-Felder zu erzeugen, muss 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 Prozess 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 (so genannte "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

ALIGNWARN001print alignment warning msgs
STARTING002being created
EXITING004getting shut down
PTRACED010set if ptrace (0) has been called
TRACESYS020tracing system calls
FORKNOEXEC040forked but didn't exec
SUPERPRIV100used super-user privileges
DUMPCORE200dumped core
SIGNALED400killed by a signal

PROZESS-STATUS-WERTE

Dununterbrechbarer Schlaf (normalerweise IO)
Rlaufend (in der run-Queue)
Sschlafend
Tverfolgt oder angehalten
Zdisfunktional ("Zombie")

Für BSD-Formate und wenn das "stat"-Schlüsselwort benutzt wird, werden zusätzliche Buchstaben angezeigt:

What keine resident Seiten
<Prozesse mit hoher Priorität
NProzesse mit geringer Priorität
Lhat gesperrte Seiten im Speicher (für Echtzeit und Benutzer-IO)

SORTIERSCHLÜSSEL

Beachten Sie, dass 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ÜSSELLANGBESCHREIBUNG
ccmdeinfacher Befehl des Programms
Ccmdlinekomplette Kommandozeile
fflagsFlags wie im Lang-Format-Feld F
gpgrpProzessgruppen ID
GtpgidKontrollierendes tty Prozessgruppen ID
jcutimegesammelte Benutzerzeit
Jcstimegesammelte Systemzeit
kutimeBenutzerzeit
KstimeSystemzeit
mmin_fltAnzahl kleiner Seiten-Fehler
Mmaj_fltAnzahl großer Seiten-Fehler
ncmin_fltGesammelte kleine Seiten-Fehler
Ncmaj_fltGesammelte großer Seiten-Fehler
osessionSession-ID
ppidProzess-ID
PppidProzess-ID des Vaterprozesses
rrssresident set size
Rresidentresidente Seiten
ssizeSpeichergröße in Kilobytes
SshareAnzahl der gemeinsam benutzten Seiten
tttyUntere Gerätenummer des tty's
Tstart_timeZeit, zu dem der Prozess gestartet wurde
UuidBenutzer-ID
uuserBenutzername
vvsizeGesamtgröße des VM in Bytes
ypriorityKernel-Scheduling-Priorität

AIX FORMAT-BESCHREIBUNGEN

Dieses 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"

CODENORMALHEADER
%Cpcpu%CPU
%GgroupGROUP
%PppidPPID
%UuserUSER
%aargsCOMMAND
%ccommCOMMAND
%grgroupRGROUP
%nniceNI
%ppidPID
%rpgidPGID
%tetimeELAPSED
%uruserRUSER
%xtimeTIME
%yttyTTY
%zvszVSZ

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

CODEHEADER
%cpu%CPU
%mem%MEM
alarmALARM
argsCOMMAND
blockedBLOCKED
bsdstartSTART
bsdtimeTIME
cC
caughtCAUGHT
cmdCMD
commCOMMAND
commandCOMMAND
cputimeTIME
drsDRS
dsizDSIZ
egidEGID
egroupEGROUP
eipEIP
espESP
etimeELAPSED
euidEUID
euserEUSER
fF
fgidFGID
fgroupFGROUP
flagF
flagsF
fnameCOMMAND
fsgidFSGID
fsgroupFSGROUP
fsuidFSUID
fsuserFSUSER
fuidFUID
fuserFUSER
gidGID
groupGROUP
ignoredIGNORED
intpriPRI
limLIM
longtnameTTY
lstartSTARTED
m_drsDRS
m_trsTRS
maj_fltMAJFL
majfltMAJFLT
min_fltMINFL
minfltMINFLT
niNI
niceNI
nwchanWCHAN
opriPRI
pageinPAGEIN
pcpu%CPU
pendingPENDING
pgidPGID
pgrpPGRP
pidPID
pmem%MEM
ppidPPID
priPRI
priorityPRI
rgidRGID
rgroupRGROUP
rssRSS
rssizeRSS
rszRSZ
ruidRUID
ruserRUSER
sS
sessSESS
sessionSESS
sgi_pP
sgi_rssRSS
sgidSGID
sgroupSGROUP
sidSID
sigPENDING
sig_blockBLOCKED
sig_catchCATCHED
sig_ignoreIGNORED
sig_pendSIGNAL
sigcatchCAUGHT
sigignoreIGNORED
sigmaskBLOCKED
stackpSTACKP
startSTARTED
start_stackSTACKP
start_timeSTART
statSTAT
stateS
stimeSTIME
suidSUID
suserSUSER
svgidSVGID
svgroupSVGROUP
svuidSVUID
svuserSVUSER
szSZ
timeTIME
timeoutTMOUT
tmoutTMOUT
tnameTTY
tpgidTPGID
trsTRS
trssTRSS
tsizTSIZ
ttTT
ttyTT
tty4TTY
tty8TTY
ucmdCMD
ucommCOMMAND
uidUID
uid_hackUID
unameUSER
userUSER
vsizeVSZ
vszVSZ
wchanWCHAN

UMGEBUNGSVARIABLEN

Die folgenden Umgebungsvariablen beeinflussen ps:

COLUMNSÜberschreibt die voreingestellte Bildschirmbreite
LINESÜberschreibt die voreingestellte Bildschirmhöhe
PS_PERSONALITYEines von posix,old,linux,bsd,sun,digital...
CMD_ENVEines von posix,old,linux,bsd,sun,digital...
I_WANT_A_BROKEN_PSErzwingt veraltete Kommandozeilenoptionen
LC_TIMEDatumsformat
PS_COLORSZurzeit noch nicht unterstützt
PS_FORMATÜberschreibt voreingestelltes Ausgabeformat
PS_SYSMAPOrt der Namensliste (System.map)
PS_SYSTEM_MAPOrt der Namensliste (System.map)
POSIXLY_CORRECTKeine Entschuldigungen für schlechte "Fähigkeiten" finden
UNIX95Keine Entschuldigungen für schlechte "Fähigkeiten" finden
_XPGNicht-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

aixwie AIX ps
bsdwie FreeBSD ps (folgt keinem Standard)
compaqwie Digital Unix ps
debianwie das alte Debian ps
digitalwie Digital Unix ps
gnuwie das alte Debian ps
hpwie HP-UX ps
hpuxwie HP-UX ps
irixwie Irix ps
linux***** EMPFOHLEN *****
oldwie die anderen original Linux ps (folgt keinem Standard)
posixstandard
scowie SCO ps
sgiwie Irix ps
sunwie SunOS 4 ps (folgt keinem Standard)
sunoswie SunOS 4 ps (folgt keinem Standard)
sysvstandard
unixstandard
unix95standard
unix98standard

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"
Nur die Prozess-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 <[email protected]> geschrieben. Michael K. Johnson <[email protected]> hat es signifikant neuimplementiert, um das /proc-Dateisystem zu unterstützen. Michael Shields <[email protected]> ergänzte die PID-Listen. Charles Blake <[email protected]> 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 <[email protected]> schrieb ps um, um komplette Unterstützung von Unix98 und BSD zu erhalten, zusammen mit einigen hässlichen Hacks für veraltete und unbekannte Syntax.

Bitte schicken Sie Fehlerberichte an <[email protected]> oder verwenden Sie das Debian Bug Tracking System.