Hauptindex | Abschnitt 1 | English | 日本語 | Optionen |
ps [optionen]
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.
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)
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)
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
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
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
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 sunos wie SunOS 4 ps (absolut sysv standard unix standard unix95 standard unix98 standard
Bitte schicken Sie Fehlerberichte an <acahalan@cs.uml.edu> oder verwenden Sie das Debian Bug Tracking System.
July 5, 1998 | PS (1) | Linux |
Hauptindex | Abschnitt 1 | English | 日本語 | Optionen |
Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.
“ | If you have any trouble sounding condescending, find a Unix user to show you how it's done. | ” |
— Scott Adams |