Como matar um processo no Linux

Como matar um processo no Linux
Todo sistema operacional Linux vem com o comando Kill. O único objetivo desta ferramenta é encerrar um processo de destino. É uma ferramenta poderosa que torna o Linux bastante versátil, especialmente em campos de servidor e corporativo, onde uma grande mudança/atualização pode entrar em vigor sem reiniciar toda a máquina. Neste artigo, estarei mostrando como matar um processo usando matar, pkill e Mate todos.

Matando um processo

Para matar um processo, usaremos um punhado de ferramentas: matar, pkill, e Mate todos. Todos eles funcionam basicamente da mesma maneira.

Essas ferramentas não encerram o processo. Em vez disso, eles enviam um sinal designado para o processo de destino ou grupos de processo. Se você não especificou nenhum sinal específico, o SigMert é enviado como o sinal padrão. No entanto, existem vários sinais suportados, por exemplo, Sigkill, Sighup etc.

Aqui está a estrutura de comando básica para matar, pkill e Mate todos.

$ Kill
$ pkill
$ killall

Sempre que possível, é recomendável usar matar.

Matar, pkill e Mate todos Localizações

Kill é o comando padrão para encerrar um processo.

$ Kill -Help

É executado no diretório /usr /bin.

$ que mata

O benefício é que também permite o acesso a Pkill, outro comando semelhante ao matar que permite o término do processo com base em seu nome.

$ PKILL -Help
$ qual pkill

Alguns aplicativos executam vários processos do mesmo executável. Se você deseja encerrar vários processos com o mesmo nome, use a ferramenta Killall.

$ Killall -Help
$ que Killall

Listando todos os processos em execução

A primeira tarefa é identificar o PID (número de identificação do processo) e/ou o nome do processo que você gostaria de encerrar. Para este exemplo, usarei o Firefox como processo de destino para encerrar. Execute o seguinte comando para listar todos os processos em execução no sistema.

$ ps -a

Para a maioria das tarefas, precisamos conhecer o PID do processo de destino. No entanto, em determinadas situações, o uso do nome do processo é mais adequado.

Se você souber o nome exato do processo de destino, pode obter diretamente o PID usando pidof.

$ pidof

Outra ferramenta interessante para obter as informações sobre o processo de destino é o PGREP. Foi projetado especificamente para o propósito.

$ PGREP

Matar sinais

Agora, vamos dar uma olhada nos sinais que as ferramentas de matar suportam. É uma lista enorme. Obviamente, nem todos eles são necessários para cada situação. De fato, a maioria das situações requer apenas alguns sinais.

Primeiro, vamos dar uma olhada na lista que Kill suporta.

$ kill -l

Existem 2 maneiras de definir qual sinal você deseja enviar. Você pode usar o nome completo do sinal ou seu valor equivalente.

$ Kill -

Ou,

$ Kill -

Os sinais mais populares são Sighup (1), Sigkill (9) e Sigterm (15). Geralmente, o Sigtert é a maneira padrão e mais segura de encerrar um processo de destino.

No caso de Pkill, o sinal suportado é o mesmo que matar. No entanto, no caso de Killall, o número de sinais suportados e os nomes de sinais são diferentes.

$ killall -l

Matando um processo

Para matar um processo, precisamos do PID desse processo de destino. Supondo que você tenha o PID, execute o seguinte comando para matá -lo.

$ Kill

Aqui, o Kill enviará o sinal padrão sigterm para o (s) PID (s). Se você quiser encerrar vários processos, mencione todos os PIDs separados pelo espaço.

$ Kill

Vamos especificar qual sinal você gostaria de enviar para o alvo.

Deseja encerrar um processo usando o nome apenas? Use Pkill.

$ pkill

Em alguns casos, um aplicativo específico pode ter muitos processos em execução. Digitar todos esses PIDs é demorado e cansativo. Em tais cenários, usaremos a ferramenta Killall. É bastante semelhante ao matar, mas funciona com o nome do processo.

$ killall

Por exemplo, ao executar o Firefox, ele inicia um punhado de processos. Para matar todos eles de uma só vez, execute este comando.

$ Killall Firefox

Deseja rescindir todos os processos que estão em execução sob um determinado usuário? Killall pode fazer o trabalho, sem problemas. Tenha cuidado ao executar este, pois pode quebrar o sistema e criar outros problemas. Não funcionará se você estiver tentando encerrar processos que estão em execução sob um usuário diferente com maior privilégio.

$ killall -u

Conflito de permissão

As características inerentes da hierarquia do usuário do Linux também se aplicam quando você está prestes a encerrar um aplicativo. Um usuário não pode rescindir processos que estão em execução com maior privilégio, apenas processos com privilégio igual/inferior. Além disso, um usuário não pode manipular processos que estão sendo executados sob diferentes usuários.

Por exemplo, vamos considerar o comando sim. Se for chamado de usuário atual, pode ser facilmente encerrado usando matar.

$ mata sim

Agora, e se sim estava correndo por baixo raiz? Chamar Kill como o usuário atual não funcionará.

Da mesma forma, se um processo estivesse em execução sob outro usuário, você não pode encerrá -lo de uma conta de usuário diferente.

Pensamentos finais

Neste artigo, apenas o básico e o uso comum desses comandos foram exibidos. Essas ferramentas de matar são capazes de mais do que isso. Para ter um conhecimento profundo das habilidades de qualquer ferramenta, recomendo verificar a página do homem.

$ Man Kill
$ man pkill

Aproveitar!