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

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

3. Exibir todos os processos no formato BSD.
$ ps au OR $ ps axu

4. Para realizar uma listagem completa de formato, adicione a flag -f
ou -F
.
$ ps -ef OR $ ps -eF

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

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

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

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

12. Para selecionar o processo por PPID, digite.
$ ps -f --ppid 1154

13. Faça uma seleção usando uma lista de PID.
$ ps -fp 2226,1154,1146

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

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

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

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

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

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

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 a opção -C, isso também mostrará 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 padrão ou arquivo.
$ 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.

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

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

Imprimir Informações de Segurança
28. Mostrar 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

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'

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.
- Como Encontrar um Nome de Processo Usando o Número PID no Linux
- Encontre os principais processos em execução com o maior uso de memória e CPU no Linux
- A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
- Como encontrar e encerrar processos em execução no Linux
- 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/