Linux / Comando ps: consultar processos, PIDs e estados
ps mostra um retrato dos processos selecionados no momento da consulta. Use o identificador de processo (PID), o identificador do pai (PPID), o usuário, o estado e o comando para investigar uma tarefa. A presença de um processo na lista não comprova que uma aplicação responde corretamente, e a saída não é atualizada depois que o comando termina.
Sintaxe e implementação
ps [opções]
Os exemplos a seguir se referem ao ps do procps-ng em Linux. Confira ps --version, ps --help all e man ps na máquina de destino. Há implementações de ps com opções e campos diferentes; o nome do comando, sozinho, não garante compatibilidade.
O procps-ng aceita opções Unix com hífen, opções BSD sem hífen e opções longas GNU com dois hifens. A grafia faz parte da seleção e do formato: não acrescente um hífen a uma opção BSD por analogia.
Consultar a seleção padrão
Comece pela consulta sem opções:
ps
No comportamento padrão documentado do procps-ng, são selecionados processos com o mesmo usuário efetivo e o mesmo terminal de quem executa ps. Portanto, essa lista não representa todos os processos do sistema. As colunas usuais são PID, TTY, TIME e CMD.
TTY identifica o terminal associado. TIME é o tempo de CPU acumulado, não o tempo de relógio desde o início do processo. Confira sempre o cabeçalho: o conjunto de colunas pode mudar conforme as opções e a configuração de formato.
Ampliar a seleção com -ef
Para selecionar todos os processos no contexto da consulta e usar o formato completo:
ps -ef
A opção -e amplia a seleção, enquanto -f escolhe o formato completo. No procps-ng, ele inclui usuário, PID, PPID e comando com argumentos, além de outros campos. O PPID ajuda a relacionar um processo ao pai observado naquele momento; não confunda a presença de uma linha com uma confirmação da saúde do serviço.
Outra combinação comum é ps aux, em estilo BSD: a e x ampliam a seleção e u escolhe o formato orientado ao usuário, com informações de recursos. Evite escrever ps -aux como se fosse equivalente: o manual descreve a ambiguidade dessa forma. O %CPU de ps é calculado em relação ao tempo de vida do processo, não como uma medição instantânea do último intervalo.
Selecionar um PID e definir as colunas
O número 1234 é um exemplo. Substitua-o pelo PID que deseja consultar:
ps -p 1234 -o pid,ppid,user,stat,cmd
O argumento -p seleciona o processo e -o define os campos e sua ordem. Aqui, pid e ppid são os identificadores, user é o usuário, stat é o estado com indicadores adicionais e cmd mostra o comando com argumentos. Se o PID não existir ou já tiver terminado, não haverá uma linha de dados correspondente; examine também o diagnóstico e o status do comando.
Para uma consulta de PID específica, não acrescente -e esperando manter o filtro estreito. No procps-ng, as seleções normalmente se somam: combinar uma seleção de todos os processos com uma seleção de PID pode ampliar o resultado. A escolha de colunas por -o, por sua vez, não escolhe processos.
Examinar o próprio shell e ler STAT
Num shell Bash interativo, $$ fornece o PID do shell. O bloco usa esse valor, sem depender de um PID fixo:
ps -o pid,ppid,stat,comm -p $$
Exemplo ilustrativo; os identificadores e o estado variam conforme a sessão:
PID PPID STAT COMMAND
4321 4100 Ss bash
Nessa linha, 4321 é o PID, 4100 é o PPID e bash é o nome do comando. O campo comm mostra o nome do executável, enquanto cmd, usado no exemplo anterior, mostra a linha de comando com argumentos quando disponível. Não use o cabeçalho COMMAND, sozinho, para concluir qual dessas informações foi selecionada.
Em Ss, S significa espera interrompível por um evento e s indica que o processo é líder de sessão. São informações diferentes: a primeira letra mostra o estado principal; as seguintes podem acrescentar propriedades.
Outros estados úteis são R, executando ou pronto para executar; D, espera não interrompível, geralmente relacionada a entrada e saída; T, parado por controle de tarefas; e Z, processo terminado cujo estado ainda não foi recolhido pelo pai. Uma linha Z não significa que o programa continua realizando seu trabalho normal. Um + adicional indica participação no grupo de processos em primeiro plano.
Na verificação disponível, o Git para Windows forneceu ps (Cygwin) 3.6.7, com Bash 5.3.9. As consultas ps e ps -ef terminaram com sucesso nessa implementação, mas os dois comandos com -o falharam com opção desconhecida. A análise de sintaxe do Bash passou nos quatro blocos; isso não verifica os campos nem os estados do procps-ng em Linux. A saída Ss acima é ilustrativa, não um resultado observado nesse teste.
Opções de seleção e de formato
| Opção | Papel no procps-ng |
|---|---|
-e |
Seleciona todos os processos no contexto da consulta. |
-f |
Escolhe o formato completo, incluindo argumentos do comando. |
-p PID |
Seleciona o PID indicado; considere os demais critérios usados na mesma chamada. |
-o campos |
Escolhe as colunas e a ordem de apresentação. |
aux |
Combina seleção ampla e formato orientado ao usuário, no estilo BSD sem hífen. |
Conferir o contexto antes de agir
Uma linha pode desaparecer logo após a consulta, e um PID pode ser reutilizado posteriormente. Antes de enviar um sinal ou realizar outra ação sobre a tarefa, consulte novamente PID, usuário, comando e contexto. Ps apenas consulta informações; os exemplos acima não encerram nem modificam processos.
A busca ps | grep nome pode incluir o próprio processo grep e casar texto em argumentos, além do nome pretendido. Para localizar PIDs por nome, o manual de pgrep descreve a consulta por padrão e o uso de -x para exigir correspondência do nome inteiro; -f muda a busca para a linha de comando. Esses critérios não são intercambiáveis, e o resultado ainda precisa ser conferido.
Se o comando ou usuário aparecer cortado, confira o formato e a largura da saída antes de interpretar o trecho como o valor completo. O manual do procps-ng permite ajustar colunas com -o e ampliar a saída com -w. O uso dessas opções precisa ser compatível com a implementação instalada.
Pergunta frequente
Qual é a diferença entre ps e top?
Ps produz uma consulta e termina. Top atualiza a apresentação periodicamente para acompanhar mudanças. Compare o significado dos campos e o intervalo de medição antes de tratar seus números de CPU como equivalentes.
Documentação
O manual de ps do procps-ng e a página de ps publicada pelo Debian descrevem as seleções, os campos de saída e os estados usados nesses exemplos.




