Qual é a diferença entre os processos listados por 'ps' e 'ps -A'?

1

Qual é a diferença entre os processos listados por ps e ps -A ?

    
por faressoft 15.04.2015 / 20:38

2 respostas

3

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).

    
por 15.04.2015 / 20:47
0

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:

  • Os processos são selecionados para exibição usando dois filtros básicos. Esses filtros estão on por padrão e as opções de linha de comando os tornam desativados . O ps sem enfeites é então filtrado por ambos.
  • A sintaxe do BSD remonta a um longo caminho. Embora os BSDs modernos usem 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 opção -a (historicamente a ) desativa toda a filtragem "selector".
    • As várias outras opções de linha de comando especificam seletores: -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 .
    • Se nenhum seletor for explicitamente fornecido, o seletor padrão exibirá apenas os processos em execução com o mesmo UID efetivo que o usuário que chamou ps . Este seletor padrão é o filtro histórico que esta opção desativa.
  • A opção -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.

Leitura adicional

  • ps 1983-04-13. 4.2BSD Manual pages.
  • ps Páginas do Manual do OpenBSD.
  • ps 2009-10-22. Páginas do manual do NetBSD.
  • ps 2014-08-07. Páginas do Manual do FreeBSD.
por 19.04.2015 / 22:49

Tags