Gerenciar processos no Linux pode parecer assustador para um novo administrador de sistemas (sysadmin) no início. Mas com um pouco de explicação e demonstração, você aprenderá como encontrar e executar processos de encerramento no Linux é apenas uma questão de usar ferramentas de linha de comando como ps
e kill
.
Neste artigo, você aprenderá comandos para localizar processos em execução e errantes, encerrar processos em execução, encontrar processos em segundo plano e muito mais em qualquer sistema operacional Linux.
Ao final do artigo, você estará gerenciando processos com base em números de identificação de processo (PIDs) a partir da linha de comando como um profissional do Linux. Continue lendo para aprender tudo sobre comandos de gerenciamento de processos no Linux!
Pré-requisitos
Este artigo será um guia sobre como gerenciar processos no Linux. Se você deseja colocar a mão na massa, precisará do seguinte:
- A Linux host, which can be a virtual machine or a physical machine.
- Para experimentar os exemplos do PowerShell, instale PowerShell 7.1.1 em um host Linux.
- A non-root user account. While root access is not required, there will be an example where the root user can kill the running process of another user.
A distribuição Linux que você escolher usar fica a seu critério. Este artigo será baseado no Ubuntu 20.04 LTS. No entanto, os comandos são padrão para o sistema operacional Linux.
Pronto para começar? Ótimo, vamos lá.
Gerenciando Processos no Linux
Em algumas ocasiões, você pode se deparar com um cenário em que precisa interromper um processo em execução em um sistema Linux. Como exemplo, você pode ter um script bash que é executado em um cronograma. Esse script bash está configurado para ser executado como outro usuário por meio de um trabalho cron (agendador de processos do Linux).
Às vezes, esse script gera processos incorretos que podem fazer o script falhar. Como você mata esses processos incorretos sem reiniciar o sistema ou parar o script?
Nas próximas seções, você aprenderá sobre os comandos usados para localizar e encerrar ou matar processos em um sistema Linux. Cada seção se baseará na anterior. Você aprenderá sobre os comandos ps
, top
, pgrep
, kill
e pkill
, todos nativos do Linux.
Como bônus, são incluídos os comandos equivalentes do PowerShell, Get-Process
e Stop-Process
, caso os comandos nativos do Linux não sejam do seu estilo.
Ferramentas para Localizar Processos
Antes de matar um processo, você precisa localizar o processo correto para direcionar. O PID único permite um direcionamento preciso. Continue lendo para aprender como localizar os processos corretos para encerramento.
Usando o Comando ps
para Exibir Informações do Processo
O comando Estado do Processo ou ps
exibe informações relacionadas aos processos ativos em um sistema Linux. É possível localizar um processo em execução e até mesmo processos em segundo plano com o comando ps
.
O comando ps
, por padrão, exibirá todos os processos para a identificação efetiva do usuário (EUID) do usuário atual. Executar o comando ps
, conforme mostrado abaixo, retornará todos os processos em execução que seu usuário pode encerrar.

bkindle
.Encontrando Informações Expandidas do Processo Usando o Comando top
E se você quiser encontrar informações constantemente atualizadas sobre processos em execução e métricas do sistema, nesse caso, você pode usar o comando top
. Ao contrário do ps
, o comando top
atualiza as informações do processo na tela ao longo de um intervalo definido.
Ao executar o comando top
, você verá mais do que apenas um PID. Incluídas com os detalhes do processo estão as porcentagens de CPU e memória, Valores de Nice (prioridade do processo de agendamento de CPU), e a prioridade do processo (PR) definida pelo kernel do Linux.
Para um sysadmin novo ou experiente, o comando top
é frequentemente a ferramenta principal para gerenciar recursos e processos vitais do sistema. Como mostrado abaixo, a saída do comando top
exibe mais informações do processo do que o comando ps
, incluindo métricas gerais do sistema.

top
command on Ubuntu Desktop 20.04 LTS showing all running PID’s.htop
é uma variante aprimorada do top
que inclui várias melhorias, como uma saída de terminal colorida.
Vamos dizer que você gostaria de inspecionar a memória ou os recursos da CPU que um processo está consumindo. Nesse caso, você pode usar a opção p
do top
, conforme mostrado abaixo.

Talvez você precise exibir todos os processos em execução para um nome de usuário específico. O comando top
oferece a opção u
para exibir apenas os processos de um usuário específico. Como visto no exemplo abaixo, os PIDs correspondentes apenas ao ID de usuário bkindle
são mostrados.

top
command displaying only processes for the user bkindle
.Localizando PIDs de Processos Específicos com o Comando pgrep
Originalmente um comando do Solaris, pgrep
foi portado para uso com o Linux. Combinando o poder de busca do comando grep
e o gerenciamento de processos do ps
, pgrep
oferece flexibilidade para encontrar o processo exato a ser direcionado.
Embora o ps
exiba mais informações, o pgrep
é projetado para retornar apenas o PID dos processos retornados. O pgrep
ajuda a localizar o processo usando os muitos parâmetros de pesquisa disponíveis. No exemplo a seguir, o pgrep
é mostrado procurando por qualquer processo correspondente a vmtoolsd
.

pgrep
to obtain all PIDs associated with vmtoolsd
.Da mesma forma, especifique um ID de usuário com a opção u
para recuperar apenas processos associados a esse usuário específico. Como mostrado abaixo, apenas um PID é retornado para o usuário bkindle
e o processo vmtoolsd
.

vmtoolsd
process associated with the user bkindle
.Encontrando Processos com o Get-Process
do PowerShell no Linux
Comandos típicos do Linux funcionam muito bem, mas você sabia que o PowerShell é capaz de gerenciar processos no Linux também? O cmdlet Get-Process
funciona de maneira semelhante ao comando ps
do Linux e retorna informações sobre processos. Por exemplo, talvez você precise encontrar todos os processos em execução pelo usuário atual, bkindle
. Como mostrado abaixo, encontre todos os PIDs (rotulados como ID pelo Get-Process
) do usuário bkindle
.

Get-Process
cmdlet.Relacionado: Como Usar o Where-Object do PowerShell para Filtrar Tudo
Tendo aprendido como localizar diferentes processos, continue lendo para descobrir todas as maneiras de encerrar ou matar um processo no Linux!
Encerrando Processos Usando Comandos Kill no Linux
Nas seções anteriores, você aprendeu como localizar o PID do processo ao qual deseja enviar um sinal de encerramento usando comandos nativos do Linux e do PowerShell. As próximas seções explicarão como usar os programas kill
e pkill
, seus sinais associados e opções de linha de comando.
Sinais do Linux e Gerenciamento de Processos
Os sinais são o método que o Linux utiliza para comunicar-se com os processos em execução no sistema operacional. Os três sinais primários que o comando kill
usa para encerrar processos são:
- 1 (SIGHUP) – Encerra programas interativos e faz com que daemons (serviços em segundo plano) releiam os arquivos de configuração que o processo utiliza.
- 9 (SIGKILL) – Força o processo a sair sem realizar tarefas de desligamento graciosas.
- 15 (SIGTERM) – Permite que um processo termine graciosamente, como fechar arquivos abertos quando concluído. Este é o sinal padrão usado quando nenhum número é especificado ao usar o comando kill.
Embora este artigo se concentre apenas nos três principais sinais usados para encerrar processos, há um total de 64 sinais disponíveis. Use
kill -l
para obter a lista de sinais e seus números correspondentes.
Agora que você entende os três principais sinais usados para encerrar um processo, aprenda como encerrar um processo nas próximas seções.
Usando o comando kill
para encerrar um processo
No próximo exemplo, você usará o comando kill
. Finja por um momento que você está executando uma instância do PowerShell, chamada pwsh
, e o PID atribuído é 22687. Uma maneira de encerrar esse processo é mostrada abaixo.
- Use
pgrep pwsh
para determinar o PID do processopwsh
, usado no comandokill
. - Use
kill -s TERM 22687
para encerrar o processopwsh
com elegância. O comandoTERM
mapeia para o sinal 15 (SIGTERM) e é indicado usando o parâmetros
do comandokill
. - Use sua escolha entre
top
,ps
oupgrep
para verificar se o PID não está mais listado.
Abaixo está um exemplo do processo acima a partir de um terminal bash do Ubuntu 20.04 LTS.

kill
and associated commands to terminate the pwsh
process.O comando
killall
irá encerrar todos os processos com base em um nome em vez do PID, o que pode tornar este comando bastante destrutivo se usado descuidadamente. Se optar por usar este comando, no entanto, utilize a opçãoi
para fazer com que o comando solicite confirmação.
Encerrando Processos por Nome com pkill
Você pode ter notado que o comando kill
só funciona com IDs de processo. Isso pode tornar a terminação de um processo um processo complicado de vários passos. O comando pkill
, incluído nos pacotes procps e procps-ng, termina um processo com base em um nome pesquisado.
Funcionalmente, o comando pkill
age como um invólucro em torno do programa pgrep
. O comando pkill
envia um sinal especificado para cada processo encontrado, em vez de apenas listar os PIDs no terminal. O pkill
difere do kill
no sentido de que o pkill
só pode usar o nome de um processo, não o PID.
O comando
pkill
não está disponível, por padrão, no Ubuntu 20.04 LTS. Você terá que baixar e instalar o aplicativo. Para fazer isso, executesudo apt install mcollective-plugins-process -y
.
Para encerrar um processo usando pkill
, siga as seguintes etapas:
- Use
ps
para verificar se o aplicativo nano (um editor de texto de linha de comando) está em execução atualmente. Esta etapa é opcional, mas é uma verificação de segurança antes de encerrar um processo. - Use
pkill -9 nano
para encerrar o aplicativo nano de forma forçada.
Aqui está um exemplo do processo acima de um terminal bash do Ubuntu 20.04 LTS.

pkill
command to forcefully terminate the nano process.Encerrando um Processo com o Comando Top
Ao executar o comando top
para visualizar os processos em execução, você pode encerrar um determinado processo com a tecla k. Você verá um prompt interativo pedindo o PID de um processo para encerrar.
Como mostrado abaixo, execute o comando top
e pressione k. Insira o PID que deseja encerrar e pressione a tecla Enter para encerrar imediatamente o PID.

top
to specify a process to terminate using the k keystroke.Em seguida, aprenda mais uma alternativa aos comandos nativos do Linux usando o comando Stop-Process
do PowerShell!
Usando o comando Stop-Process
do PowerShell para encerrar um processo
Se os comandos nativos do Linux não são do seu estilo, o PowerShell tem a solução! Assim como com o comando kill
, você pode encerrar processos usando o Stop-Process
cmdlet no Linux. Mais uma vez, finja que está executando um processo do PowerShell pwsh
.
- Encontre o PID com
Get-Process -ProcessName 'pwsh'
e anote os PIDs para encerramento. - Use
Stop-Process -Id 29992,30014
para encerrar os múltiplos processos retornados. - Use
Get-Process -ProcessName 'pwsh'
e verifique os PIDs,29992
e30014
não estão mais listados, o que significa que foram encerrados.
Você também pode usar
Get-Process
e o métodokill
para encerrar um ou múltiplos processos:(Get-Process -Id [PID]).Kill()
ou(Get-Process -Id [PID1,2,3,4]).Kill()
.Exercite cautela ao usar o parâmetro
ProcessName
. Usar este parâmetro se comporta de forma semelhante ao comandokillall
, e irá encerrar todos os processos que correspondam ao(s) nome(s) fornecido(s).
Abaixo está um exemplo do processo acima a partir de um terminal bash do Ubuntu 20.04 LTS.

Stop-Process
to kill processes in Linux.Próximos Passos
Agora você deve saber as muitas maneiras de encontrar e encerrar processos no Linux! Para o seu próximo desafio, tente encerrar processos remotamente usando conexões SSH ou encerrando processos que possam estar em execução em contêineres.
Relacionado: Um cara do Windows em um mundo Linux: Configurando o SSH no Linux