Comandos ps e pstree – Visualizando processos e threads no sistema 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

  • -a Mostra processos de propriedade de outros usuários e vinculados a um terminal
  • -e Selecionar todos os processos. Idêntico a -A
  • -l Formato longo, incluindo prioridade, PPID, etc.
  • -r Mostrar apenas processos em execução
  • -u Formato de usuário, com nomes de usuário e hora de início dos processos
  • -x Inclui processos sem terminal de controle (daemons, GUI.)
  • -U usuário Exibe processos de propriedade do usuário.
  • -L “Lightweight Process” / LWP, mostra os threads associados a um processo específico.
  • -T Mostrar threads, com coluna SPID

Campos comuns exibidos nas saídas do comando:

  • USER: Usuário proprietário do processo
  • PID: ID do processo
  • %CPU: % dos recursos de CPU que o processo está usando
  • %MEM: % da memória real que o processo está usando
  • VSZ: Tamanho virtual do processo em KiB
  • RSS: Resident Set Size (Total de memória usada pelo processo e seus arquivos)
  • TTY: Identificador do terminal de controle
  • STAT: Estado de processo atual
  • START: Horário em que o processo foi iniciado
  • COMMAND: Nome do comando e argumentos.
  • LWP: ightweight Process (Thread)

Estado dos processos retornados por ps:

  • R = Executável
  • S = Dormente
  • Z = Zumbi
  • D = Espera no disco
  • T = Rastreado ou interrompido

Flags adicionais:

  • W = Processo paginado em disco
  • < = O processo tem uma prioridade maior que a normal
  • N = O processo tem uma prioridade menor que a normal
  • L = Algumas páginas são bloqueadas no núcleo (kernel)

Sendo que:

  • Executável: O processo pode ser executado (quando houver tempo de CPU disponível)
  • Dormente: O processo está aguardando algum recurso
  • Zumbi: O processo está tentando se destruir
  • Parado: O processo é suspenso (não há permissão para ser executado).

Exemplos

1. Mostrar todos os processos:

# ps ax

Visualizar processos no Linux com comando ps

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

Mostrar processos em execução com ps aux no Linux

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

# ps -f -u fabio

ver processos no Linux com comando ps

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

Mostrar los procesos que se ejecuta en Linux con el comando ps

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

Comprobar procesos que se ejecutan en Linux con la herramienta ps

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

Show running processes in Linux with the ps command

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

Afficher les processus en cours sous Linux avec la commande ps

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

Mostra processos en execució a Linux amb l'ordre ps

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

Mostra i processi in esecuzione in Linux con il comando ps

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

# ps aux -T

Mostrar procesos con información detallada en Linux usando el comando ps

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

verificar processos com comando pstree no Linux

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

# pstree 100

Mostrar lista de procesos de forma jerárquica en Linux mediante el comando pstree

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:

Sobre Fábio dos Reis (1278 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*