Was bedeutet aux in „ps aux“?

ps aux scheint alle Prozesse sowie deren Status und Ressourcennutzung (Linux / BSD / MacOS) bequem aufzulisten. Ich kann jedoch die Bedeutung des Parameters aux mit man ps nicht verstehen.

Was bedeutet aux bedeuten?

Kommentare

  • Übrigens ps = Prozessstatus

Antwort

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

Übrigens ist man ps eine gute Ressource.

Historisch gesehen sind BSD und AT & T entwickelte inkompatible Versionen von ps. Die Optionen ohne führenden Bindestrich (gemäß der Frage) entsprechen dem BSD-Stil, während diejenigen mit einem führenden Bindestrich AT T Unix-Stil. Darüber hinaus hat Linux eine Version entwickelt, die beide Stile unterstützt und fügt dann einen dritten Stil mit Optionen hinzu, die mit doppelten Strichen beginnen.

Alle (oder fast alle) nicht eingebetteten Linux-Distributionen verwenden eine Variante des procps suite. Die obigen Optionen sind wie in der Manpage procps ps definiert.

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

Kommentare

  • @HowardGuo Sind Sie sicher, dass dies nicht ' t ist -u im Gegensatz zu nur u?
  • @HowardGuo Ich habe die Antwort aktualisiert, um die Unterschiede zwischen den GNU widerzuspiegeln (Linux) -Version von ps und der Apple OSX-Version. Diese Frage ist derzeit mit " Linux " gekennzeichnet. Wenn Sie auch nach MacOS fragen, möchten Sie möglicherweise die Tags aktualisieren.
  • Vielen Dank. Ich habe gerade die Handbuchseite von ps unter Linux überprüft und sie enthält Informationen zu aux. Die MacOS ' Handbuchseite enthält möglicherweise keine solchen Informationen ein Dokumentfehler sein.
  • OSX-Manpage für ps sagt " … ps aux funktioniert immer noch wie in Tiger " unter " Legacy Description " Abschnitt.
  • Ich muss dem Kommentar widersprechen, dass " man ps eine gute Ressource auf dem Mac ist OSX. Die Manpage stellt nur ganz am Ende fest, dass ps aux als Annehmlichkeit beibehalten wird, aber es gibt absolut keinen Hinweis darauf, dass Optionen angegeben werden können, ohne vor dem Ende Bindestriche zu führen Die Seite ist lang und sehr komplex, und ein Leser kann viel Zeit damit verbringen, seine geistige Gesundheit in Frage zu stellen, bevor er aufgibt und nach dieser Stapelaustauschfrage googelt.

Antwort

 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 oben genannten Schaltern können Sie “ Sie erhalten eine Ausgabe bezüglich Ihrer Prozesse wie oben.

Die Schalter aux zeigen Ihnen:

  • alle Benutzer „-Prozesse
  • zeigt Ihnen den Prozess an, der benutzerorientiert aufgelistet ist (nach Benutzernamen).
  • zeigt Ihnen alle Prozesse, nicht nur diejenigen, die an ein Terminal angeschlossen sind. Dies umfasst Prozesse wie Dienste wie crond, upowerd usw.

Antwort

Der Schlüssel zum Verständnis der manpage soll nicht nach „aux“ suchen (was ich zuerst versucht habe), sondern sich auf den Abschnitt konzentrieren, der die Arten von Parametern beschreibt ps benötigt:

Diese Version von ps akzeptiert verschiedene Arten von Optionen:

  1. UNIX-Optionen, Dies kann gruppiert sein und muss mit einem Bindestrich versehen werden.
  2. BSD-Optionen, die gruppiert werden können und nicht mit einem Bindestrich verwendet werden dürfen.
  3. GNU-Long-Optionen, denen ein Bindestrich vorangestellt ist zwei Striche.

Daraus wissen wir, dass aux eine Menge von (gruppiert) ist ) BSD-Optionen, a, u und x, wodurch sie etwas einfacher zu sehen sind up.

  • a und x contro l Welche Prozesse ausgewählt und zusammen verwendet werden, wird explizit beschrieben, um alle Prozesse auszuwählen.

  • u Ausgaben unter Verwendung der Option „Benutzerorientiert“ „Format, das mehr Spalten enthält, einschließlich der Benutzer-ID und der CPU- / Speichernutzung.

Da u allein das Ausgabeformat steuert, können Sie die Ausgabe im „ps aux“ -Stil nur für bestimmte Prozesse mit ps u $pid1 $pid2 ....

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.