Pesquisa de site

Como encerrar processos Linux usando Kill, Pkill e Killall


No Linux, encerrar um processo refere-se a encerrar ou interromper a execução de um programa em execução. Cada processo em execução recebe um número identificador exclusivo conhecido como ID do processo (PID), que ajuda o sistema a acompanhar os processos atualmente ativos.

Neste artigo, descobriremos mais sobre o processo de eliminação do Linux e como localizar e encerrar um processo usando diferentes ferramentas e comandos no Linux.

Qual é o processo Linux

Em termos simples, um processo é como um programa que está sendo executado em um sistema, e cada processo tem seu próprio número de ID especial (PID). No entanto, às vezes, um programa ou processo em execução pode se comportar mal ou parar de responder ou consumir muitos recursos do sistema.

Quando isso acontece, precisamos parar ou “matar” o processo e é aqui que o comando kill se torna útil.

O que é o comando Kill

O comando “kill” é um utilitário crucial que permite aos usuários enviar sinais (parar ou encerrar) para processos em execução no momento, instruindo-os a encerrar normalmente ou encerrar à força.

O comando kill é útil quando você precisa gerenciar e controlar as atividades de diferentes programas em seu sistema Linux, como:

  • Para interromper qualquer processo automatizado.
  • Para interromper um processo que foi iniciado acidentalmente.
  • Para interromper um processo que usa muita memória.
  • Para encerrar à força qualquer processo em execução no Linux.
  • Para interromper um processo em execução em segundo plano.

Usar o comando kill de /usr/bin fornece alguns recursos extras para eliminar um processo pelo nome do processo usando pkill, que identifica processos por os nomes deles.

Como encontrar o ID do processo ou o nome do processo

Antes de encerrar um processo em execução, é essencial identificar seu ID de processo (PID) ou nome usando o seguinte comando ps que exibe informações sobre todos os processos em execução no sistema com seu PID (ID de processo) e outras informações.

ps -ef

Se você deseja encontrar um nome de processo específico PID, você pode usar um comando grep que listará todos os processos em execução no sistema e filtrará os resultados para mostrar apenas aqueles que contêm o termo “mariadb“.

ps -ef | grep mariadb

Alternativamente, você pode encontrar diretamente o PID de um processo pelo nome usando o comando pgrep conforme mostrado.

pgrep mariadb

Como matar um processo no Linux

Antes de encerrar, interromper ou encerrar um processo, pense nas permissões. Se você for um usuário root, poderá interromper qualquer processo, mas se for um usuário normal, precisará adicionar um “sudo” antes do comando ou mudar para um root com “ su” para usar o comando de terminação.

A sintaxe comum para o comando kill é:

kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)

Para um comando kill um Nome do sinal poderia ser:

Claramente pelo comportamento acima:

  • SIGTERM é a maneira padrão e mais segura de encerrar um processo.
  • SIGHUP é uma forma menos segura de encerrar um processo do que SIGTERM.
  • SIGKILL é a forma mais insegura entre as três acima, de encerrar um processo que encerra um processo sem salvá-lo.

No Linux, existem diferentes sinais que você pode usar para interromper, encerrar ou pausar processos. Você pode listar todos os sinais de morte disponíveis com seus nomes e números correspondentes usando o seguinte comando, que listará

kill -l

Embora existam vários sinais disponíveis, na maioria dos casos usamos apenas SIGKILL (9) e SIGTERM (15).

Para encerrar um processo, precisamos saber o ID do processo. Um Processo é uma instância de um programa. Cada vez que um programa é iniciado, um PID exclusivo é gerado automaticamente para esse processo.

Todo processo no Linux tem um pid. O primeiro processo que inicia quando o sistema Linux é inicializado é o – processo de inicialização, portanto, é atribuído um valor de ‘1’ na maioria dos casos.

Init é o processo mestre e não pode ser eliminado desta forma, o que garante que o processo mestre não seja eliminado acidentalmente. Init decide e permite ser eliminado, onde kill é apenas um pedido de desligamento.

Antes de avançarmos e executarmos um comando kill, alguns pontos importantes devem ser observados:

  • Um usuário pode matar todos os seus processos.
  • Um usuário não pode encerrar o processo de outro usuário.
  • Um usuário não pode encerrar processos que o sistema está usando.
  • Um usuário root pode encerrar o processo no nível do sistema e o processo de qualquer usuário.

Para encerrar o processo mariadb PID, use o comando kill conforme mostrado.

kill -9 3383

O comando acima encerrará o processo tendo pid=3383, onde PID é um valor numérico do processo.

Outra maneira de executar a mesma função pode ser reescrita como.

kill -SIGTERM 3383

Da mesma forma, 'kill -9 PID' é semelhante a 'kill -SIGKILL PID' e vice-versa.

Para confirmar que o processo foi finalizado, você pode usar novamente o comando ps.

ps -ef | grep mariadb

Como matar vários processos no Linux

Para encerrar vários processos no Linux usando seus IDs de processo (PIDs), você pode usar o comando kill em combinação com os números PID relevantes.

Primeiro, identifique os PIDs dos processos que você deseja encerrar usando o comando ps ou pgrep.

ps aux | grep apache2
OR
pgrep apache2

Depois de ter os PIDs, use o comando kill para encerrá-los.

kill -9 PID1 PID2 PID3

Como encerrar um processo no Linux usando o nome do processo

Para encerrar um processo usando o nome do processo, usaremos o comando pkill, que é uma versão do comando kill que permite mencionar o nome do processo ou um padrão para localizar um processo.

Você deve estar ciente do nome do processo antes de encerrar, e inserir um nome de processo errado pode ferrar você.

pkill mysqld

E se um processo tiver muitas instâncias e vários processos filhos, temos um comando ‘killall’ que usa o nome do processo como argumento no lugar do número do processo.

Como encerrar um processo no Linux usando o comando Killall

A principal distinção entre killall e kill é que killall pode encerrar um processo pelo seu nome, enquanto o comando kill depende do ID do processo (pid).

Para eliminar todas as instâncias do MySQL junto com os processos filhos, use o comando a seguir.

killall mysqld
OR
pkill mysqld

Você sempre pode verificar o status do processo, se ele está em execução ou não, usando qualquer um dos comandos abaixo.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

Ferramentas de monitoramento de sistemas gráficos Linux como htop ou gnome-system-monitor fornecem uma interface amigável para localizar e eliminar processos.

Conclusão

Por enquanto é isso de mim. Voltarei em breve com outro tópico interessante e informativo. Até lá, fique atento e conectado à Tecmint, e cuide da sua saúde. Não se esqueça de compartilhar seus valiosos comentários na seção de comentários.