Bóson Treinamentos em Ciência e Tecnologia

Comandos ps e pstree – Visualizando processos e threads no sistema Linux

Comandos ps e pstree no Linux

Comandos ps e pstree – Visualizando processos e threads no sistema Linux

Comando ps

O comando ps gera um instantâneo dos processos atuais no terminal e permite mostrar informações sobre uma seleção dos processos ativos.

Sintaxe

ps [opções]

Há três estilos de opções disponíveis:

1. Opções padrão do Unix: podem ser agrupadas e são precedidas por um hífen.

# ps -ax

2. Opções BSD: podem ser agrupadas e não são precedidas por um hífen.

# ps ax

3. Opções longas GNU: Não são agrupadas e são precedidas por dois hífens.

# ps --all

Podemos misturar opções de tipos diferentes livremente, porém tomando cuidado pois conflitos podem ocorrer.

Opções principais do comando ps

Campos comuns exibidos nas saídas do comando:

Estado dos processos retornados por ps:

Flags adicionais:

Sendo que:

Exemplos

1. Mostrar todos os processos:

# ps ax

A listagem continua, apenas uma parte é mostrada na figura acima. As opções ax nos trazem o PID, TTY, Status, Tempo de Execução e Comando que originou o processo.

2. Mostrar todos os processos com informações detalhadas:

# ps aux

3. Mostrando apenas os processos do usuário fabio:

# ps -f -u fabio

4. Mostrar os processos com informações técnicas adicionais, como PPID (PID do processo pai) , Flags associadas (F), Valor Nice (NI), prioridade do processo (PRI) e função do kernel no qual o processo está dormente (WCHAN):

# ps lax

5. Verificar o processo associado e informações gerais de um programa em execução, como o navegador web Iceweasel. Para isso filtraremos a saída do comando ps com o grep:

# ps aux | grep iceweasel

Note que o PID do processo principal do Iceweasel é 4031. O PID 4087 mostrado é do próprio processo grep que usamos para filtrar a saída do comando ps.

6. Mostrar os threads associados a um processo específico. Por exemplo, suponhamos que o navegador Iceweasel esteja rodando no momento. Podemos descobrir seu PID (como fizemos no exemplo anterior) e depois os threads associados usando o comando ps com a opção -L (“Lightweight Process”, LWP):

# ps -p 4031 -L

Note a grande quantidade de threads sendo executadas pelo processo de PID 4031. Cada thread possui seu próprio TID (Thread identification), que é o número que aparece na segunda coluna da listagem acima.

7. Classificar os processos em ordem de utilização da CPU (“pcpu”):

# ps aux --sort=-pcpu

Veja que os valores na coluna %CPU estão em ordem decrescente.

8. Mostrar apenas colunas especificadas, como por exemplo, PID, % de uso da cpu e % de uso da memória RAM:

# ps -e -o pid,pcpu,pmem

9. Mostrar o PID, usuário e tempo de execução do processo – que não é exibido por padrão. Usaremos o parâmetro etime (Elapsed Time / Tempo Decorrido):

# ps -e -o pid,user,etime

10. Mostrar processos com informações detalhadas, e threads na coluna SPID:

# ps aux -T

Comando pstree

O comando pstree permite exibir uma lista hierárquica de processos no formato de árvore.

Sintaxe

pstree [opções]

Exemplos

1 – Inclui PIDs na saída:

# pstree -p

Exibe a subárvore de processos sob o processo de PID 3670:

# pstree 100

As Threads são exibidas entre chaves nas saídas desses comandos.

Há muitos outros comandos que podemos usar para verificar e gerenciar processos, como o top, nice, renice, htop, entre outros. Os estudaremos em outros tutoriais.

Enquanto isso, assista a um vídeo de nosso canal no YouTube sobre o assunto:

Sair da versão mobile