Gerenciar processos no Linux pode parecer assustador para um novo administrador de sistema (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 com problemas, encerrar (terminar) processos em execução, encontrar processos em segundo plano e muito mais em qualquer sistema operacional Linux.
Até o final do artigo, você estará gerenciando processos com base nos números de identificação de processos (PIDs) a partir da linha de comando como um profissional do Linux. Continue lendo para aprender tudo sobre os comandos de gerenciamento de processos no Linux!
Pré-requisitos
Este artigo será um guia sobre como gerenciar processos no Linux. Se você quiser colocar a mão na massa, você 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 do 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. Por exemplo, você pode ter um script bash que é executado em um cronograma. Esse script bash é 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 com que o script falhe. Como você pode encerrar esses processos incorretos sem reiniciar o sistema ou interromper o script?
Nas próximas seções, você aprenderá sobre os comandos utilizados para localizar e encerrar ou encerrar processos em um sistema Linux. Cada seção irá se basear na anterior. Você aprenderá sobre os comandos ps
, top
, pgrep
, kill
e pkill
, todos nativos do Linux.
Como bônus, serão incluídos os comandos equivalentes do PowerShell Get-Process
e Stop-Process
caso você não esteja familiarizado com os comandos nativos do Linux.
Ferramentas para Localizar Processos
Antes de encerrar 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 comando ps
exibe informações relacionadas aos processos ativos em um sistema Linux. Você pode localizar um processo em execução e até mesmo processos em segundo plano com o comando ps
.
O comando ps
irá, por padrão, exibir todos os processos para a identificação do usuário efetivo (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 porcentagens de CPU e memória, Valores Nice (prioridade de processamento da 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 vitais do sistema e processos. Como mostrado abaixo, a saída do comando top
exibe mais informações de 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 o switch 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 o switch u
para exibir apenas os processos de um usuário específico. Como visto no exemplo abaixo, os PIDs que correspondem apenas ao ID de usuário bkindle
são mostrados.

top
command displaying only processes for the user bkindle
.Localizando PIDs de Processo Específicos com o Comando pgrep
Originalmente um comando do Solaris, pgrep
foi portado para uso com 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 encontrados. O pgrep
ajuda a localizar o processo usando o muitos parâmetros de busca disponíveis. No exemplo a seguir, o pgrep
é mostrado procurando por qualquer processo que corresponda 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 os 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
.Localizando Processos com o Get-Process
do PowerShell no Linux
Comandos típicos do Linux funcionam muito bem, mas você sabia que o PowerShell pode gerenciar processos no Linux também? O cmdlet Get-Process
funciona de maneira semelhante ao comando ps
no 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
Depois de aprender como localizar diferentes processos, continue lendo para descobrir todas as maneiras de encerrar ou finalizar um processo no Linux!
Encerrando Processos Usando os 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
Sinais são o método que o Linux usa para se comunicar com 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 terminar. 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 este processo é mostrada abaixo.
- Use
pgrep pwsh
para determinar o PID do processopwsh
, usado no comandokill
. - Use o comando
kill -s TERM 22687
para encerrar o processopwsh
de forma graciosa. O comandoTERM
mapeia para o sinal 15 (SIGTERM) e é indicado usando o parâmetros
do comandokill
. - Use a sua escolha de
top
,ps
oupgrep
para verificar que 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 esse comando bastante destrutivo se usado descuidadamente. Se escolher usar este comando, no entanto, utilize a opçãoi
para que o comando peça confirmação.
Encerrando Processos por Nome com pkill
Você pode ter notado que o comando kill
só funciona com IDs de processos. 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, encerra um processo com base em um nome pesquisado.
Functionally, o comando pkill
atua 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. pkill
difere de kill
no sentido de que 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ê precisará 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. 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.
Abaixo está um exemplo do processo acima a partir 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 solicitando o PID do processo a ser encerrado.
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
no 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 você coberto! 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 a serem encerrados. - Use
Stop-Process -Id 29992,30014
para encerrar os vários 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 vários 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 aos nomes fornecidos.
Abaixo está um exemplo do processo acima de um terminal bash Ubuntu 20.04 LTS.

Stop-Process
to kill processes in Linux.Próximos Passos
Você deve agora saber 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