30 Exemplos úteis de comandos ‘ps’ para monitoramento de processos do Linux
ps (status dos processos) é um utilitário Unix / Linux nativo 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 sistema especificamente sob monitoramento de processo, para ajudá-lo a entender o que está acontecendo em um sistema Linux.
Ele tem várias opções para manipular sua saída, no entanto, você encontrará uma pequena vários deles são praticamente úteis para uso diário.
Leia também: Tudo o que você precisa saber sobre processos no Linux
Neste artigo, veremos 30 exemplos úteis de comandos ps para monitorar processos ativos em execução em um sistema Linux.
Observe que o 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 no ps man página.
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
Imprimir todos os processos em formatos diferentes
2. Exibir todos os processos ativos em um sistema Linux em formato genérico (Unix / Linux).
$ ps -AOR$ ps -e
3. Exibir todos os processos no formato BSD.
$ ps auOR$ ps axu
4. Para executar uma listagem de formato completo, adicione o sinalizador -f
ou -F
.
$ ps -efOR$ ps -eF
Exibir processos de 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 tecmintOR$ ps -fu 1000
7. Para selecionar os processos de um usuário por ID de usuário efetivo (EUID) ou nome, use a opção -u
.
$ ps -fu tecmintOR$ ps -fu 1000
Imprimir todos os processos em execução como raiz (ID real e efetiva)
8. O comando abaixo permite que você visualize todos os processos em execução com privilégios de usuário root (real & ID efetivo) no formato do usuário.
$ ps -U root -u root
Processos de grupo de exibição
9. Se você deseja listar todos os processos pertencentes a um determinado grupo (ID de grupo real (RGID) ou nome), digite.
$ ps -fG apacheOR$ ps -fG 48
10. Para listar todos os processos pertencentes ao nome de grupo efetivo (ou sessão), digite.
$ ps -fg apache
Processos de exibição por PID e PPID
11. Você pode listar os processos por PID da seguinte maneira.
$ ps -fp 1178
12. Para selecionar o processo por PPID, digite.
$ ps -f --ppid 1154
13. Faça a seleção usando a lista PID.
$ ps -fp 2226,1154,1146
Processos de exibição por TTY
14. Para selecionar processos por tty, use o sinalizador -t da seguinte maneira.
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
Árvore de processos de impressão
15. Uma árvore de processo mostra como os processos no sistema estão vinculados uns aos outros; processos cujos pais foram eliminados são adotados pelo init (ou systemd).
$ ps -e --forest
16. Você também pode imprimir uma árvore de processo para um determinado processo como este.
$ ps -f --forest -C sshdOR$ ps -ef --forest | grep -v grep | grep sshd
Imprimir threads de processo
17. Para imprimir todos os threads de um processo, use o sinalizador -H
, isso mostrará as colunas LWP (processo de peso leve) e NLWP (número de processos de peso leve).
$ ps -fL -C httpd
Especifique o formato de saída personalizado
Usando as opções -o ou –format, o ps permite que você crie formatos de saída definidos pelo usuário como mostrado abaixo.
18. Para listar todos os especificadores de formato, inclua o sinalizador L
.
$ ps L
19. O comando abaixo permite que você visualize o PID, PPID, nome de usuário e comando de um processo.
$ ps -eo pid,ppid,user,cmd
20. Abaixo está outro exemplo de um formato de saída personalizado que mostra 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 por seu nome, use o sinalizador -C, isso também exibirá todos os seus processos filho.
$ 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 std.
$ 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.
Solução de problemas Desempenho do sistema Linux
Se o seu sistema não estiver funcionando como deveria, por exemplo, se estiver anormalmente lento, você pode solucionar alguns problemas do sistema como segue.
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 | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Para interromper processos / aplicativos que não respondem do Linux ou qualquer processo que consome 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) como este.
$ ps -eMOR$ ps --context
29. Você também pode exibir informações de segurança no formato definido pelo usuário com este comando.
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Executar monitoramento de processo em tempo real usando o utilitário Watch
30. Finalmente, como o ps exibe informações estáticas, você pode empregar o utilitário watch para realizar o monitoramento do processo 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: o ps mostra apenas informações estáticas; para ver a saída atualizada com frequência, você pode usar ferramentas como htop; início e relances: os dois últimos são na verdade uma ferramenta de monitoramento de desempenho do sistema Linux.
Você também pode querer ler os seguintes artigos relacionados.
- Como encontrar um nome de processo usando o número PID no Linux
- Encontrar os principais processos em execução pela maior memória e uso da CPU no Linux
- Um guia para Comandos Kill, Pkill e Killall para encerrar um processo no Linux
- Como encontrar e interromper processos em execução no Linux
- Como iniciar o comando Linux em segundo plano e desanexar o processo no terminal