O que significa aux em `ps aux`?

162

ps auxparece 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 auxusando man ps.

O que auxsignifica isso ?

Howard
fonte

Respostas:

209

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

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

Historicamente, BSD e 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) as distribuições Linux não incorporadas usam uma variante do pacote procps . As opções acima são definidas na página de manual procpsps .

Nos comentários, você diz que está usando o Apple MacOS (OSX, eu presumo). A página do manual OSX psestá aqui e mostra suporte apenas ao estilo AT&T.

John1024
fonte
1
@HowardGuo Tem certeza de que não é apenas -uo contrário u?
jordanm
2
@HowardGuo Atualizei a resposta para refletir as diferenças entre a versão GNU (Linux) pse a versão Apple OSX. Esta pergunta está atualmente marcada com "Linux". Se você também estiver perguntando sobre o MacOS, atualize as tags.
John1024
1
Muito obrigado. Acabei de verificar a página de manual do ps no Linux e ela contém informações sobre aux, a página de manual do MacOS não possui essas informações, pode ser um bug de documento.
Howard
2
A página de manual do OSX psdiz "... ps auxainda funciona como no Tiger" na seção "Descrição herdada".
Dev #
3
Eu tenho que contestar o comentário que " man psé um bom recurso no mac OSX. A página de manual, apenas no final, observa que ps auxé mantida como uma conveniência, mas não há absolutamente nenhuma dica de que opções possam ser especificadas sem hífens antes ao final, a página do manual é longa e ricamente complexa, e um leitor pode gastar muito tempo questionando seu / sua sanidade mental antes de desistir e pesquisando para esta pergunta Stackexchange.
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.

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 auxmostrarão:

  • todos os processos dos usuários
  • mostrar o processo listado de forma 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.
slm
fonte
6

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

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 (agrupadas) BSD, a, ue x, o que os torna um pouco mais fácil olhar para cima.

  • ae xcontrolar quais processos são selecionados e usados ​​juntos são descritos explicitamente para selecionar todos os processos.

  • u saídas 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.

mwfearnley
fonte
Um corolário disso é que, se você deseja a saída do estilo "ps aux" para um processo, pode obtê-la deixando de fora ae x, apenas fazendo ps u $pid.
mwfearnley