desenv-web-rp.com

O que significa aux em `ps aux`?

ps aux parece listar convenientemente todos os processos e seus status e uso de recursos (Linux/BSD/MacOS), no entanto, não consigo compreender o significado do parâmetro aux usando man ps.

O que significa aux?

181
Howard

a = mostra processos para todos os usuários
u = exibe o usuário/proprietário do processo
x = também mostra processos não conectados a um terminal

A propósito, man ps é um bom recurso.

Historicamente, a BSD e a AT&T desenvolveram versões incompatíveis de ps. As opções sem um traço principal (conforme a pergunta) são o estilo BSD, enquanto aquelas com um traço principal são o estilo AT&T Unix. Além disso, o Linux desenvolveu uma versão que suporta os dois estilos e, em seguida, adiciona um terceiro estilo com opções que começam com traços duplos.

Todas (ou quase todas) distribuições Linux não incorporadas usam uma variante do conjunto procps . As opções acima são as definidas na página man procps ps .

Nos comentários, você diz que está usando o Apple MacOS (OSX, presumo). A página de manual do OSX para ps é aqui e mostra suporte apenas para o estilo 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.

Exemplo

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

Com as opções acima, você obterá resultados sobre seus processos, como acima.

Os comutadores aux mostrarão a você:

  • todos os processos dos usuários
  • mostrar o processo listado de maneira orientada ao usuário (por nomes de usuário)
  • mostra todos os processos, não apenas os conectados a um terminal. Isso incluirá processos como serviços como crond, upowerd, etc.
17
slm

A chave para entender o página de manual não é procurar por "aux" (que tentei primeiro), mas focar na seção que descreve os tipos de parâmetro ps:

Esta versão do ps aceita vários tipos de opções:

  1. Opções UNIX, que podem ser agrupadas e devem ser precedidas por um traço.
  2. Opções de BSD, que podem ser agrupadas e não devem ser usadas com um traço.
  3. Opções longas do GNU, que são precedidas por dois traços.

A partir disso, sabemos que aux é um conjunto de opções BSD (agrupadas), a, u e x, o que os torna um pouco mais fáceis de procurar acima.

  • a e x controlam quais processos são selecionados e usados ​​juntos são explicitamente descritos para selecionar todos os processos.

  • u gera usando o formato "orientado ao usuário", que fornece mais colunas, incluindo a identificação do usuário e o uso da CPU/memória.

Como u sozinho controla o formato de saída, você pode obter uma saída no estilo "ps aux" apenas para processos específicos com ps u $pid1 $pid2 ....

8
mwfearnley