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 a administração do sistema, especificamente no monitoramento de processos, para ajudá-lo 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, veremos 30 exemplos úteis de comandos ps para monitorar processos em execução ativos 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ção, você pode encontrar o significado de todos os rótulos na ps man page.
Listar Todos os Processos no Shell Atual
1. Se você executar o comando ps sem argumentos, ele exibirá processos para o shell atual.
$ ps

Imprimir Todos os Processos em Diferentes Formatos
2. Exibir todos os processos ativos em um sistema Linux em 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 (executante 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 & efetivo) no formato de usuário.
$ ps -U root -u root

Exibir Processos em 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 processos por PID da seguinte forma.
$ ps -fp 1178

12. Para selecionar um 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 a árvore de processos
15. Uma árvore de processos mostra como os processos do sistema estão vinculados entre si; 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 assim.
$ ps -f --forest -C sshd OR $ ps -ef --forest | grep -v grep | grep sshd

Imprimir Threads de Processos
17. Para imprimir todos os threads de um processo, use a bandeira -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 ps permite que você construa formatos de saída definidos pelo usuário, conforme mostrado abaixo.
18. Para listar todos os especificadores de formato, inclua a bandeira 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 mostrando grupo de sistema de arquivos, valor de nice, tempo 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 nome, use a bandeira -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 etapas de solução de problemas do sistema da seguinte maneira.
26. Encontre os processos em execução mais importantes 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 inativos do Linux ou qualquer processo que esteja consumindo alta CPU.
Primeiro, encontre o PID do processo ou aplicativo inativo.
$ ps -A | grep -i stress
Em seguida, use o comando kill para encerrá-lo imediatamente.
$ kill -9 2583 2584

Exibir 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

Realizar Monitoramento de Processos em Tempo Real Usando a Utilidade Watch
30. Por fim, uma vez que o 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 conforme o 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: o ps mostra apenas informações estáticas, para visualizar saída atualizada com frequência, 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 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 destacar o processo no terminal
Isso é tudo por agora. Se você tiver algum exemplo(s) útil(is) do comando ps para compartilhar (não se esqueça de explicar o que ele faz), use o formulário de comentários abaixo.
Source:
https://www.tecmint.com/ps-command-examples-for-linux-process-monitoring/