O comando “ps” é uma ferramenta essencial para exibir informações relacionadas aos processos em execução em um sistema Linux. Ele oferece uma visão detalhada das atividades dos processos, permitindo aos usuários monitorar e gerenciar o desempenho do sistema.
Entendendo a Saída Básica do Comando “ps”
Ao executar o comando “ps” sem argumentos, você obterá uma saída simples, incluindo as seguintes colunas:
- PID (ID de processo): Este é um identificador único para cada processo em execução.
- TTY (Tipo de terminal): Indica o tipo de terminal no qual o processo está sendo executado.
- TIME (Tempo): Mostra o tempo de CPU consumido pelo processo desde o início de sua execução.
- CMD (Comando): Exibe o comando que foi usado para iniciar o processo correspondente.
$ ps
--------------------------------------------------------------------
PID TTY TIME CMD
54316 pts/0 00:00:00 bash
54341 pts/0 00:00:00 ps
Utilizando Argumentos com o Comando “ps”
O comando “ps” pode ser personalizado com argumentos para atender às necessidades específicas. A presença de um traço (-) antes dos argumentos resulta na saída padrão, enquanto a ausência de um traço produz a saída no estilo BSD (Berkeley Software Distribution).
Aqui estão alguns exemplos de argumentos úteis do “ps”:
- Para visualizar todos os processos em execução:
ps -e
oups -A
- Para obter uma lista formatada completa de todos os processos em execução:
ps -efL
$ ps -efL | more # Use "more" para visualização desde o início
-------------------------------------------------------------------
UID PID PPID LWP C NLWP STIME TTY TIME CMD
root 1 0 1 1 1 03:44 ? 00:00:20 /sbin/init
root 2 0 2 0 1 03:44 ? 00:00:00 [kthreadd]
...
Pesquisando Processos com “grep”
Você pode combinar o comando “ps” com o utilitário “grep” para procurar processos específicos. Por exemplo, se você deseja verificar se o servidor “httpd” está em execução, pode fazer o seguinte:
$ ps -efL | grep httpd
--------------------------------------------------------------------
root 48778 39025 48778 0 1 04:22 pts/0 00:00:00 grep --color=auto httpd
Filtrando Processos por Usuário ou Grupo
Você também pode filtrar os processos exibidos com base no nome de usuário ou grupo:
- Para ver todos os processos em execução por nome de usuário:
ps -u root
- Para ver todos os processos em execução por grupo:
ps -G admin
Visualizando a Árvore de Processos
Às vezes, é útil ver a árvore de processos, onde um processo pode ter vários subprocessos. Você pode usar o comando “ps -ejH” para visualizar a árvore de processos:
$ ps -ejH | grep sshd
--------------------------------------------------------------------
614 614 614 ? 00:00:00 sshd
22310 22310 22310 ? 00:00:00 sshd
30267 30267 30267 ? 00:00:00 sshd
33871 33871 33871 ? 00:00:00 sshd
Neste exemplo, examinamos a árvore de processos do processo “sshd”.
Utilizando “ps aux” para uma Visão Detalhada
Um dos comandos “ps” mais amplamente utilizados é “ps aux”. Ele exibe todos os processos em execução usando a sintaxe BSD e fornece informações detalhadas, incluindo:
- %CPU (Porcentagem de CPU): A porcentagem de tempo de CPU usada pelo processo.
- %MEM (Porcentagem de Memória): A porcentagem de memória física usada pelo processo.
- VSZ (Virtual Size): A quantidade de memória virtual consumida pelo processo.
- RSS (Resident Set Size): A quantidade de memória física real usada pelo processo.
- START (Início): A data ou hora em que o processo foi iniciado.
- TIME (Tempo): O tempo total de CPU consumido pelo processo.
- STAT (Status): O estado atual do processo.
$ ps aux | more
--------------------------------------------------------------------
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.6 0.5 169396 11312 ? Ss 03:44 0:24 /sbin/init
root 2 0.0 0.0 0 0 ? S 03:44 0:00 [kthreadd]
...
O comando “ps aux” fornece informações adicionais, como a porcentagem de CPU e memória usada, tornando-o uma ferramenta valiosa para monitorar o desempenho do sistema Linux.
Em resumo, o comando “ps” é uma ferramenta poderosa para exibir informações sobre os processos em execução em um sistema Linux. Com a combinação certa de argumentos, ele pode fornecer uma visão detalhada do estado atual do sistema, permitindo que os usuários gerenciem eficientemente os processos e otimizem o desempenho do sistema.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.