Pesquisa de site

30 exemplos úteis de 'comando ps' para monitoramento de processos Linux


ps (status dos processos) é um utilitário nativo do Unix/Linux para visualizar informações relativas a 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 sistema, especificamente no monitoramento de processos, para ajudá-lo a entender o que está acontecendo em um sistema Linux.

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

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

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

Observe que ps produz uma saída com uma linha de título, que representa o significado de cada coluna de informação. Você pode encontrar o significado de todos os rótulos na página de manual do ps.

Listar todos os processos no shell atual

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

ps 

Imprima todos os processos em diferentes formatos

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

ps -A
OR
ps -e

3. Exiba todos os processos no formato BSD.

ps au
OR
ps axu

4. Para realizar uma listagem em formato completo, adicione o sinalizador -f ou -F.

ps -ef
OR
ps -eF

Exibir processos em execução do usuário

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

ps -x 

6. Para exibir os processos de um usuário por ID de usuário real (RUID) ou nome, use o sinalizador -U.

ps -fU tecmint
OR
ps -fu 1000

7. Para selecionar os processos de um usuário por ID (EUID) ou nome do usuário efetivo, use a opção -u .

ps -fu tecmint
OR
ps -fu 1000

Imprimir todos os processos em execução como root (ID real e efetivo)

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

ps -U root -u root 

Exibir processos de grupo

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

ps -fG apache
OR
ps -fG 48

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

ps -fg apache

Exibir processos por PID e PPID

11. Você pode listar processos por PID como segue.

ps -fp 1178

12. Para selecionar o processo por PPID, digite.

ps -f --ppid 1154

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

ps -fp 2226,1154,1146

Exibir processos por TTY

14. Para selecionar processos por tty, use o sinalizador -t conforme a seguir.


ps -t pts/0
ps -t pts/1
ps -ft tty1

Imprimir árvore de processos

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

ps -e --forest 

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

ps -f --forest -C sshd
OR
ps -ef --forest | grep -v grep | grep sshd 

Imprimir threads de processo

17. Para imprimir todos os threads de um processo, use o sinalizador -L, isso mostrará o LWP (processo leve), bem como colunas NLWP (número de processos leves).

ps -fL -C httpd

Especifique o formato de saída personalizado

Usando as opções -o ou –format, ps permite criar formatos de saída definidos pelo usuário, conforme mostrado abaixo.

18. Para listar todos os especificadores de formato, inclua o sinalizador 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

20. Abaixo está outro exemplo de formato de saída personalizado mostrando o grupo do sistema de arquivos, valor legal, hora de início e tempo decorrido de um processo.

ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime

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

ps -p 1154 -o comm=

Exibir processos pai e filho

22. Para selecionar um processo específico pelo seu nome, use o sinalizador -C, isso também exibirá todos os seus processos filhos.

ps -C sshd

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 ou arquivo padrão.

ps -C httpd -o pid=

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.

Solucionar problemas de desempenho do sistema Linux

Se o seu sistema não estiver funcionando como deveria, por exemplo, se estiver excepcionalmente lento, você poderá solucionar alguns problemas do sistema da seguinte maneira.

26. Encontre os principais processos em execução por 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

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

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

ps -A | grep -i stress

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

kill -9 2583 2584

Imprimir informações de segurança

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

ps -eM
OR
ps --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

Execute o monitoramento de processos em tempo real usando o utilitário Watch

30. Finalmente, como ps exibe informações estáticas, você pode empregar o utilitário 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 atingir seu objetivo).

watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'

Importante: ps mostra apenas informações estáticas. Para visualizar resultados atualizados com frequência você pode usar ferramentas como htop; topo e relances: 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 por maior uso de memória e CPU no Linux
  3. Um guia para comandos Kill, Pkill e Killall para encerrar um processo no Linux
  4. Como encontrar e eliminar processos em execução no Linux
  5. Como iniciar o comando Linux em segundo plano e desanexar processo no terminal

É tudo por agora. Se você tiver algum exemplo útil de comando ps para compartilhar (sem esquecer de explicar o que ele faz), use o formulário de comentários abaixo.