30 Exemplos Úteis de ‘Comando ps’ para Monitoramento de Processos no Linux

ps (status de processos) é um utilitário nativo do Unix/Linux para visualizar informações sobre uma seleção de processos em execução em um sistema: ele lê essas informações dos arquivos virtuais no sistema de arquivos /proc. É um dos utilitários importantes para administração de sistemas, especificamente no monitoramento de processos, para ajudar a entender o que está acontecendo em um sistema Linux.

Ele possui inúmeras opções para manipular sua saída, no entanto, você encontrará um pequeno número delas praticamente úteis para uso diário.

Leia também: Tudo o que você precisa saber sobre processos no Linux [Guia abrangente]

Neste artigo, vamos ver 30 exemplos úteis de comandos ps para monitorar processos ativos em execução em um sistema Linux.

Observe que o ps produz saída com uma linha de cabeçalho, que representa o significado de cada coluna de informações, você pode encontrar o significado de todos os rótulos na página do manual do ps.

Listar todos os processos no shell atual

1. Se você executar o comando ps sem argumentos, ele exibirá os processos para o shell atual.

$ ps 
List Current Running Processes

Imprimir todos os processos em diferentes formatos

2. Exibir todos os processos ativos em um sistema Linux no formato genérico (Unix/Linux).

$ ps -A
OR
$ ps -e
List Processes in Standard Format

3. Exibir todos os processos no formato BSD.

$ ps au
OR
$ ps axu
List Processes in BSD Format

4. Para realizar uma listagem completa de formato, adicione a flag -f ou -F.

$ ps -ef
OR
$ ps -eF
List Processes in Long List Format

Exibir Processos em Execução do Usuário

5. Você pode selecionar todos os processos de propriedade do usuário (executor do comando ps, root neste caso), digite:

$ ps -x 

6. Para exibir os processos de um usuário pelo ID de usuário real (RUID) ou nome, use a flag -U.

$ ps -fU tecmint
OR
$ ps -fu 1000
List User Processes by ID

7. Para selecionar os processos de um usuário pelo ID de usuário efetivo (EUID) ou nome, use a opção -u.Imprimir Todos os Processos em Execução como Root (ID Real e Efetivo)

$ ps -fu tecmint
OR
$ ps -fu 1000

8. O comando abaixo permite visualizar todos os processos em execução com privilégios de usuário root (ID real e efetivo) no formato de usuário.

$ ps -U root -u root 
Display Root User Running Processes

Exibir Processos do Grupo

9. Se deseja listar todos os processos de propriedade de um determinado grupo (ID de grupo real (RGID) ou nome), digite.

$ ps -fG apache
OR
$ ps -fG 48
Display Group Processes

10. Para listar todos os processos de propriedade do nome do grupo efetivo (ou sessão), digite.

$ ps -fg apache

Exibir Processos por PID e PPID

11. Você pode listar os processos por PID da seguinte forma.

$ ps -fp 1178
List Processes by PID

12. Para selecionar o processo por PPID, digite.

$ ps -f --ppid 1154
List Process by PPID

13. Faça uma seleção usando uma lista de PID.

$ ps -fp 2226,1154,1146
List Processes by PIDs

Exibir Processos por TTY

14. Para selecionar processos por tty, use a flag -t da seguinte forma.

$ ps -t pts/0
$ ps -t pts/1
$ ps -ft tty1
List Processes by TTY

Imprimir Árvore de Processos

15. Uma árvore de processos mostra como os processos no sistema estão ligados entre si; os processos cujos pais foram encerrados são adotados pelo init (ou systemd).

$ ps -e --forest 
List Process Tree

16. Você também pode imprimir uma árvore de processos para um determinado processo desta forma.

$ ps -f --forest -C sshd
OR
$ ps -ef --forest | grep -v grep | grep sshd 
List Tree View of Process

Imprimir Threads de Processo

17. Para imprimir todos os threads de um processo, use a opção -L, isso mostrará as colunas LWP (processo leve) e NLWP (número de processos leves).

$ ps -fL -C httpd
List Process Threads

Especificar Formato de Saída Personalizado

Usando as opções -o ou –format, o comando ps permite que você construa formatos de saída personalizados como mostrado abaixo.

18. Para listar todos os especificadores de formato, inclua a opção L.

$ ps L

19. O comando abaixo permite visualizar o PID, PPID, nome de usuário e comando de um processo.

$ ps -eo pid,ppid,user,cmd
List Processes with Names

20. Abaixo está outro exemplo de um formato de saída personalizado que mostra grupo de sistema de arquivos, valor de prioridade, hora de início e tempo decorrido de um processo.

$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
List Process ID Information

21. Para encontrar um nome de processo usando seu PID.

$ ps -p 1154 -o comm=
Find Process using PID

Exibir Processos Pai e Filho

22. Para selecionar um processo específico pelo seu nome, use a opção -C, isso também mostrará todos os seus processos filhos.

$ ps -C sshd
Find Parent-Child Process

23. Encontre todos os PIDs de todas as instâncias de um processo, útil ao escrever scripts que precisam ler PIDs de uma saída padrão ou arquivo.

$ ps -C httpd -o pid=
Find All Process PIDs

24. Verifique o tempo de execução de um processo.

$ ps -eo comm,etime,user | grep httpd

A saída abaixo mostra que o serviço HTTPD está em execução há 1 hora, 48 minutos e 17 segundos.

Find Process Uptime

Resolva Problemas de Desempenho do Sistema Linux

Se o seu sistema não estiver funcionando como deveria, por exemplo, se estiver anormalmente lento, você pode realizar algumas soluções de problemas do sistema da seguinte maneira.

26. Encontre os processos em execução no topo com maior uso de memória e CPU no Linux.

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
OR
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
Find Top Running Processes

27. Para encerrar processos/aplicativos não responsivos do Linux ou qualquer processo que esteja consumindo muito tempo de CPU.

Primeiro, encontre o PID do processo ou aplicativo não responsivo.

$ ps -A | grep -i stress

Em seguida, use o comando kill para encerrá-lo imediatamente.

$ kill -9 2583 2584
Find and Kill a Process

Imprimir Informações de Segurança

28. Mostrar contexto de segurança (especificamente para SELinux) assim.

$ ps -eM
OR
$ ps --context
Find SELinux Context

29. Você também pode exibir informações de segurança em um formato definido pelo usuário com este comando.

$ ps -eo  euser,ruser,suser,fuser,f,comm,label
List SELinux Context by Users

Realizar Monitoramento de Processos em Tempo Real Usando a Utilidade Watch

30. Finalmente, uma vez que ps exibe informações estáticas, você pode empregar a utilidade watch para realizar monitoramento de processos em tempo real com saída repetitiva, exibida a cada segundo como no comando abaixo (especifique um comando ps personalizado para alcançar seu objetivo).

$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
Real-Time Process Monitoring

Importante: ps mostra apenas informações estáticas, para visualizar saída frequentemente atualizada, você pode usar ferramentas como htop; top e glances: os dois últimos são, na verdade, ferramentas de monitoramento de desempenho do sistema Linux.

Você também pode gostar de ler os seguintes artigos relacionados.

  1. Como Encontrar um Nome de Processo Usando o Número PID no Linux
  2. Encontre os principais processos em execução com o maior uso de memória e CPU no Linux
  3. A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
  4. Como encontrar e encerrar processos em execução no Linux
  5. Como iniciar um comando Linux em segundo plano e desanexar o processo no terminal

É isso por agora. Se tiver algum exemplo útil de comando ps para compartilhar (não esqueça de explicar o que faz), use o formulário de comentários abaixo.

Source:
https://www.tecmint.com/ps-command-examples-for-linux-process-monitoring/