sem o -A
, o ps imprimirá somente os processos pertencentes à sessão atual. Pense nisso como "absolutamente tudo". Em uma nota relacionada, -a
faz a mesma coisa, mas restringe-a ao proprietário da sessão (nome de usuário).
Qual é a diferença entre os processos listados por ps
e ps -A
?
O comando GNU ps
sofre de um caso grave de transtorno de personalidade múltipla. Portanto, não é de admirar que sua página de manual seja confusa. Talvez uma olhada nos manuais do BSD possa ajudar. Afinal de contas, esta questão é marcada com unix .
A operação do BSD ps
é bastante direta quando se tem duas coisas em mente:
ps
sem enfeites é então filtrado por ambos. getopt
e a convenção de opções prefixadas por um sinal de menos, as opções e o comportamento relevantes aqui são praticamente os mesmos de 30 anos atrás. Esse comportamento é este:
-a
(historicamente a
) desativa toda a filtragem "selector".
-U
seleciona por UID, -t
controlando o nome do terminal, -p
seleciona por ID do processo e assim por diante. Todos estes são ignorados por -a
. ps
. Este seletor padrão é o filtro histórico que esta opção desativa. -x
(historicamente x
) desativa a restrição de que ps
exiba apenas processos que possuam um terminal de controle. Historicamente, o BSD ps
não tinha uma opção A
. Mas os BSDs modernos implementam uma opção -A
, também utilizável como A
, para (um grau de) compatibilidade com a (mais recente) Especificação Single UNIX. -A
é simplesmente o mesmo que usar -a
e -x
: ele desativa as duas restrições, deixando uma com todos os processos, não filtrada.
O OpenBSD e o NetBSD documentam a opção -A
, no caso do NetBSD explicitamente como -a -x
. FreeBSD não, mas um comentário no código-fonte afirma que ele está lá como uma opção de compatibilidade SUSv5 intencionalmente não documentada.