Was bedeutet aux in "ps aux"?

161

ps auxscheint bequem alle Prozesse und deren Status und Ressourcennutzung (Linux / BSD / MacOS) Liste, aber ich kann die Bedeutung des Parameters nicht begreifen , auxmit man ps.

Was auxbedeutet

Howard
quelle

Antworten:

208

a = Prozesse für alle Benutzer
anzeigen u = den Benutzer / Eigentümer des Prozesses anzeigen
x = auch Prozesse anzeigen, die nicht an ein Terminal angeschlossen sind

Übrigens man psist eine gute Ressource.

In der Vergangenheit entwickelten BSD und AT & T inkompatible Versionen von ps. Die Optionen ohne einen führenden Gedankenstrich (wie in der Frage angegeben) sind im BSD-Stil, während die mit einem führenden Gedankenstrich im AT & T-Unix-Stil sind. Darüber hinaus hat Linux eine Version entwickelt, die beide Stile unterstützt. Anschließend wird ein dritter Stil hinzugefügt, dessen Optionen mit doppelten Bindestrichen beginnen.

Alle (oder fast alle) nicht eingebetteten Linux-Distributionen verwenden eine Variante der procps- Suite. Die obigen Optionen sind in der procps- psManpage definiert .

In den Kommentaren sagen Sie, Sie verwenden Apple MacOS (OSX, nehme ich an). Die OSX-Manpage für psist hier und zeigt die Unterstützung nur für den AT & T-Stil.

John1024
quelle
1
@ HowardGuo Sind Sie sicher, dass das nicht -uim Gegensatz zu nur ist u?
Jordan
2
@ HowardGuo Ich habe die Antwort aktualisiert, um die Unterschiede zwischen der GNU (Linux) -Version psund der Apple OSX-Version widerzuspiegeln . Diese Frage ist momentan mit "Linux" markiert. Wenn Sie auch nach MacOS fragen, möchten Sie möglicherweise die Tags aktualisieren.
John1024
1
Vielen Dank. Ich habe gerade die Manualpage von ps unter Linux überprüft und sie enthält Informationen zu aux, die Manualpage von MacOS enthält keine solchen Informationen, es könnte sich um einen Dokumentfehler handeln.
Howard
2
Die OSX-Manpage für pssagt "... ps auxfunktioniert immer noch wie in Tiger" im Abschnitt "Legacy Description".
Dev
3
Ich muss dem Kommentar widersprechen, dass " man psunter Mac OS X eine gute Ressource ist. Die Manpage stellt nur am Ende fest, dass dies aus ps auxBequemlichkeitsgründen beibehalten wird, aber es gibt absolut keinen Hinweis darauf, dass Optionen ohne vorangestellte Bindestriche angegeben werden können Am Ende ist die Manpage lang und komplex, und ein Leser kann viel Zeit damit verbringen, seine / ihre Vernunft in Frage zu stellen, bevor er aufgibt und diese Stapelwechselfrage googelt.
Reb.Cabin
15
   a      Lift the BSD-style "only yourself" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.  
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          with a terminal (tty), or to list all processes when used together 
          with the x option.

   u      Display user-oriented format.

   x      Lift the BSD-style "must have a tty" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          owned by you (same EUID as ps), or to list all processes when used 
          together with the a option.

Beispiel

$ ps aux | head -10
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  51120  2796 ?        Ss   Dec22   0:09 /usr/lib/systemd/systemd --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    Dec22   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Dec22   0:04 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Dec22   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    Dec22   0:15 [migration/0]
root         8  0.0  0.0      0     0 ?        S    Dec22   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    Dec22   2:47 [rcu_sched]
...
saml      3015  0.0  0.0 117756   596 pts/2    Ss   Dec22   0:00 bash
saml      3093  0.9  4.1 1539436 330796 ?      Sl   Dec22  70:16 /usr/lib64/thunderbird/thunderbird
saml      3873  0.0  0.1 1482432 8628 ?        Sl   Dec22   0:02 gvim -f
root      5675  0.0  0.0 124096   412 ?        Ss   Dec22   0:02 /usr/sbin/crond -n
root      5777  0.0  0.0  51132  1068 ?        Ss   Dec22   0:08 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplica
saml      5987  0.7  1.5 1237740 119876 ?      Sl   Dec26  14:05 /opt/google/chrome/chrome --type=renderer --lang=en-
root      6115  0.0  0.0      0     0 ?        S    Dec27   0:06 [kworker/0:2]
...

Mit den obigen Schaltern erhalten Sie eine Ausgabe in Bezug auf Ihre Prozesse wie oben.

Die Schalter auxzeigen Ihnen:

  • alle Prozesse der Benutzer
  • Zeigen Sie den Prozess auf benutzerorientierte Weise (nach Benutzernamen)
  • Zeigen Sie alle Prozesse an, nicht nur diejenigen, die mit einem Terminal verbunden sind. Dazu gehören Prozesse wie Dienste wie crond, upowerd usw.
slm
quelle
6

Der Schlüssel zum Verständnis der Manpage besteht nicht darin, nach "aux" zu suchen (was ich zuerst versucht habe), sondern sich auf den Abschnitt zu konzentrieren, der die Arten von Parameter- psTakes beschreibt:

Diese Version von ps akzeptiert verschiedene Arten von Optionen:

  1. UNIX-Optionen, die gruppiert werden können und denen ein Bindestrich vorangestellt werden muss.
  2. BSD-Optionen, die gruppiert werden können und nicht mit einem Bindestrich verwendet werden dürfen.
  3. GNU long options, denen zwei Bindestriche vorangestellt sind.

Daraus wissen wir , dass auxeine Reihe von (gruppiert) BSD - Optionen ist, a, uund x, was sie sehen etwas leichter macht.

  • aund zu xsteuern, welche Prozesse ausgewählt und zusammen verwendet werden, werden explizit beschrieben, um alle Prozesse auszuwählen.

  • u Die Ausgabe erfolgt im "benutzerorientierten" Format, das mehr Spalten enthält, einschließlich der Benutzer-ID und der CPU- / Speicherauslastung.

mwfearnley
quelle
Eine logische Folge davon ist , dass , wenn Sie den „ps aux“ -Stil Ausgang für einen Prozess wollen, dann können Sie es durch Weglassen aund x, und nur tun ps u $pid.
Mwfearnley