web-dev-qa-db-fra.com

Que signifie aux dans «ps aux»?

ps aux semble répertorier tous les processus, leur état et leur utilisation des ressources (Linux/BSD/MacOS), mais je ne peux pas comprendre la signification du paramètre aux en utilisant man ps.

Que signifie aux?

181
Howard

a = afficher les processus pour tous les utilisateurs
u = afficher l'utilisateur/propriétaire du processus
x = affiche également les processus non attachés à un terminal

Au fait, man ps est une bonne ressource.

Historiquement, BSD et AT&T ont développé des versions incompatibles de ps. Les options sans tiret (selon la question) sont le style BSD tandis que celles avec un tiret sont le style AT&T Unix. En plus de cela, Linux a développé une version qui prend en charge les deux styles et y ajoute ensuite un troisième style avec des options qui commencent par des doubles tirets.

Toutes (ou presque toutes) les distributions Linux non intégrées utilisent une variante de la suite procps . Les options ci-dessus sont définies dans la page de manuel procps ps .

Dans les commentaires, vous dites que vous utilisez Apple MacOS (OSX, je présume). La page de manuel OSX pour ps est ici et elle montre prise en charge uniquement pour le style AT&T.

233
John1024
   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.

Exemple

$ 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]
...

Avec les commutateurs ci-dessus, vous obtiendrez une sortie concernant vos processus comme ci-dessus.

Les commutateurs aux vous montreront:

  • tous les processus utilisateurs
  • vous montrer le processus répertorié de manière orientée utilisateur (par nom d'utilisateur)
  • vous montrer tous les processus, pas seulement ceux attachés à un terminal. Cela inclura des processus tels que des services comme crond, upowerd, etc.
17
slm

La clé pour comprendre le manpage n'est pas de rechercher "aux" (que j'ai essayé en premier), mais de se concentrer sur la section qui décrit les types de paramètres ps prend:

Cette version de ps accepte plusieurs types d'options:

  1. Options UNIX, qui peuvent être regroupées et doivent être précédées d'un tiret.
  2. Options BSD, qui peuvent être regroupées et ne doivent pas être utilisées avec un tiret.
  3. Options longues GNU, précédées de deux tirets.

De cela, nous savons que aux est un ensemble d'options BSD (groupées), a, u et x, ce qui les rend légèrement plus faciles à regarder vers le haut.

  • a et x contrôlent quels processus sont sélectionnés et utilisés ensemble sont explicitement décrits pour sélectionner tous les processus.

  • u sorties utilisant le format "orienté utilisateur", qui donne plus de colonnes, y compris l'ID utilisateur et l'utilisation CPU/mémoire.

Étant donné que u contrôle seul le format de sortie, vous pouvez obtenir une sortie de style "ps aux" uniquement pour des processus spécifiques avec ps u $pid1 $pid2 ....

8
mwfearnley