Artigo original: Linux List Processes – How to Check Running Processes

Todos os dias, os desenvolvedores usam várias aplicações e executam comandos no terminal. Essas aplicações podem incluir um navegador, editor de código, terminal, aplicação de videochamada ou reprodutor de música.

Para cada uma dessas aplicações de software que você abre ou comando que executa, ele cria um processo ou tarefa.

Uma bela característica do sistema operacional Linux e dos computadores modernos em geral é que eles fornecem suporte para multitarefas. Assim, vários programas podem ser executados simultaneamente.

Você já se perguntou como você pode verificar todos os programas em execução na sua máquina? Se já fez isso, este artigo é para você, pois vou mostrar aqui como listar, gerenciar e eliminar todos os processos em execução em sua máquina Linux.

Pré-requisitos

  • Uma distro Linux instalada.
  • Conhecimento básico em navegação pela linha de comando.
  • Um sorriso no rosto 😀

Uma introdução rápida aos processos no Linux

Um processo é uma instância de um programa de computador em execução que você pode encontrar em um programa de software ou comando.

Por exemplo, se você abrir o editor do Visual Studio Code, isso criará um processo que somente será finalizado uma vez que você termine ou feche o Visual Studio Code.

Da mesma forma, quando você executa um comando no terminal (tipo curl ifconfig.me), ele cria um processo que só vai parar quando o comando terminar de executar ou for finalizado.

Como listar os processos em execução no Linux com o comando ps

Você pode listar os processos em execução usando o comando ps (ps significa process status). O comando ps exibe seus processos em execução no momento e em tempo real.

Para testar isso, basta abrir o terminal e executar o comando ps, assim:

Screenshot-2021-06-28-at-3.25.33-PM

Isto mostrará o processo que está em execução em quatro colunas:

  • PID retorna o ID exclusivo do processo
  • TTY retorna o tipo de terminal em que você está logado
  • TIME retorna a quantidade total de uso da CPU
  • CMD retorna o nome do comando que iniciou o processo.

Você pode escolher exibir um determinado conjunto de processos usando qualquer combinação das opções (como -A -a, -C, -c, -d, -E, -e, -u, -X, -x, entre outros).

Se você especificar mais de uma dessas opções, todos os processos que forem combinados por, pelo menos, uma das opções indicadas serão exibidas.

Screenshot-2021-06-28-at-3.55.10-PM
A página do manual do comando ps.
Digite man ps no seu terminal para ler o manual do comando ps, que tem uma referência completa para todas as opções e suas utilizações.

Para mostrar todos os processos em execução para todos os usuários na sua máquina, incluindo os seus nomes de usuário, e para mostrar processos não conectados ao seu terminal, é possível usar o comando abaixo:

ps aux

Aqui está uma descrição do comando:

  • ps: é o comando de status do processo.
  • a: exibe informações sobre os processos de outros usuários, bem como os seus.
  • u:  exibe os processos pertencentes aos nomes de usuário especificados.
  • x: inclui processos que não possuem terminal de controle.
Screenshot-2021-06-28-at-4.39.05-PM

Isso exibirá o processo para o shell atual em onze colunas:

  • USER retorna o nome de usuário de quem está executando o processo
  • PID retorna o ID de processo exclusivo
  • %CPU retorna a porcentagem de uso da CPU
  • %MEM retorna a porcentagem de uso da memória
  • VSV retorna o tamanho virtual em Kbytes
  • RSS retorna o tamanho do conjunto residente
  • TT retorna o nome do terminal de controle
  • STAT retorna o estado do processo simbólico
  • STARTED retorna a hora de início
  • CMD retorna o comando que iniciou o processo.

Como listar processos em execução no Linux usando os comandos top e htop

Você também pode usar o comando top do gerenciador de tarefas no Linux para ver uma lista ordenada em tempo real dos processos principais que usam mais memória ou CPU.

Digite top em seu terminal e você terá um resultado como o que você vê na captura de tela abaixo:

Screenshot-2021-06-28-at-4.27.28-PM
Você pode digitar q para sair da sessão.

Uma alternativa ao top é o htop que fornece um monitor de sistema interativo para visualizar e gerenciar processos. Ele também exibe uma lista ordenada em tempo real de processos com base em seu uso de CPU. Você pode facilmente pesquisar, filtrar e matar processos em execução.

O htop não está instalado no Linux por padrão. Então, você precisa instalá-lo usando o comando abaixo ou baixar os binários para sua distro Linux preferida.

sudo apt update && sudo apt install htop

Basta digitar htop em seu terminal e você terá um resultado como o que você vê na captura de tela abaixo:

Screenshot-2021-06-29-at-4.49.09-AM

Como encerrar processos em execução no Linux

Encerrar um processo significa que você termina uma aplicação ou comando em execução. Você pode encerrar um processo executando o comando kill com o ID do processo ou o comando pkill juntamente ao nome do processo, assim:

kill [PID]

ou

pkill [COMMAND]

Para encontrar o ID de um processo em execução, você pode usar o comando pgrep seguido do nome do processo, deste modo:

pgrep iTerm2

Para encerrar o processo iTerm2 na captura de tela acima, usaremos qualquer um dos comandos abaixo. Isto terminará e fechará automaticamente o processo iTerm2 (aplicação).

kill 25781

ou

kill iTerm2

Conclusão

Quando você lista processos em execução, geralmente é uma lista longa e agrupada. Você pode canalizá-la através de poucas palavras para exibir a saída do comando uma página de cada vez em seu terminal assim:

ps aux | less

Também é possível exibir apenas um processo específico que corresponda a um nome específico, assim:

ps aux | grep Chrome

Espero que, agora, você entenda o que são processos no Linux e como gerenciá-los usando os comandos ps, top e htop. Certifique-se de verificar o manual para cada comando, executando man ps, man top ou man htop, respectivamente. O manual inclui uma referência abrangente que você pode verificar se precisar de mais ajuda em qualquer ponto.

Obrigado pela leitura! Tudo de bom! 💙