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.