Listagem de processos


O comando ps é usado para listar informações detalhadas para processos atuais.

  • A identificação de usuário (UID) que determina os privilégios de processo.

  • A identificação de processo (PID) única.

  • Quantidade de CPU usada e tempo real.

  • Quantidade de memória alocada.

  • O local do processo stdout, conhecido como o terminal de controle.

  • O estado atual do processo.

A versão do Linux do comando ps é compatível com as seguintes opções de formatos:

  • Opções UNIX (POSIX), que podem ser agrupadas e devem ser antecedidas de um traço.

  • Opções BSD, que podem ser agrupadas e não devem ser usadas com um traço.

  • Opções extensas GNU, que são precedidas por dois traços.

Por exemplo, o comando ps -aux não é o mesmo que o comando ps aux.

O comando ps aux exibe todos os processos, incluindo processos sem um terminal de controle.

As opções lax fornecem mais detalhes e são exibidos mais rapidamente, evitando pesquisas de nome de usuário. Uma sintaxe semelhante à do UNIX usa as opções -ef para exibir todos os processos. Nos exemplos a seguir, os threads de kernel agendados são exibidos entre colchetes no topo da lista.

[user@host ~]$ ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.1  0.2 171820 16140 ?        Ss   16:47   0:01 /usr/lib/systemd/systemd ...
root           2  0.0  0.0      0     0 ?        S    16:47   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   16:47   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   16:47   0:00 [rcu_par_gp]
root           6  0.0  0.0      0     0 ?        I<   16:47   0:00 [kworker/0:0H-events_highpri]
...output omitted...
[user@host ~]$ ps lax
F   UID     PID    PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY  TIME COMMAND
4     0       1       0  20   0 171820 16140 -      Ss   ?    0:01 /usr/lib/systemd/systemd ...
1     0       2       0  20   0      0     0 -      S    ?    0:00 [kthreadd]
1     0       3       2   0 -20      0     0 -      I<   ?    0:00 [rcu_gp]
1     0       4       2   0 -20      0     0 -      I<   ?    0:00 [rcu_par_gp]
1     0       6       2   0 -20      0     0 -      I<   ?    0:00 [kworker/0:0H-events_highpri]
...output omitted...
[user@host ~]$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root           1       0  0 16:47 ?        00:00:01 /usr/lib/systemd/systemd ...
root           2       0  0 16:47 ?        00:00:00 [kthreadd]
root           3       2  0 16:47 ?        00:00:00 [rcu_gp]
root           4       2  0 16:47 ?        00:00:00 [rcu_par_gp]
root           6       2  0 16:47 ?        00:00:00 [kworker/0:0H-events_highpri]
...output omitted...

Por padrão, o comando ps sem opções seleciona todos os processos com a ID de usuário efetiva (EUID, Effective User ID) do usuário atual e os processos associados ao terminal que está executando o comando.

Os processos zumbis são listados com o rótulo exiting ou defunct.

O comando ps --forest exibe os processos em um formato de árvore para que você possa exibir as relações entre os processos pai e filho.

A saída padrão do comando ps é classificada por número de ID do processo. À primeira vista, a saída pode parecer usar ordem cronológica, mas o kernel reutiliza IDs de processo, portanto, a ordem é menos estruturada do que parece.

Use as opções -O ou --sort do comando ps para classificar a saída. A ordem de exibição é equivalente à ordem da tabela de processos do sistema, a qual reutiliza as linhas na tabela à medida que os processos são extintos e gerados.

Referências