Processo de Kill Linux por PID

Processo de Kill Linux por PID
No Linux (e mais modernos sistemas operacionais), a encerramento de um processo requer com força o envio de um sinal de terminal apropriado. Existem várias maneiras de enviar um sinal de rescisão para um processo específico. Se você conhece o PID (ID do processo) do processo de destino, o comando Kill pode enviar diretamente o sinal de terminação para ele.

Neste guia, demonstraremos como matar um processo Linux por seu PID.

PID em Linux

O termo PID é um acrônimo para "número de identificação do processo". Cada processo recebe um PID único no momento em que eles são criados no sistema. O número 1 do PID é atribuído ao Systemd (init, para sistemas mais antigos). Essencialmente, o SystemD ou o init é sempre o primeiro processo a iniciar no Linux e é pai de todos os outros processos.

Existem algumas ferramentas que podemos usar para obter o PID de um processo de destino. O método mais popular (e recomendado) de obter o PID está usando o comando ps. É uma ferramenta embutida disponível em todos os sistemas Linux. Saiba mais detalhadamente sobre o comando PS no Linux.

Para imprimir todos os processos em execução com o PID, execute o seguinte comando PS:

$ ps -ef

Para uma navegação mais fácil, coloque a saída para o comando menos:

$ ps -ef | menos

Observe que a coluna PID lista todos os processos classificados pelo PID. É o valor que estamos procurando.

Procurando um processo específico com um nome específico? Então o comando Grep é seu amigo. Ele pode procurar um padrão específico no arquivo especificado (stdout, neste caso). Por exemplo, o comando a seguir procurará qualquer processo em execução do Firefox:

$ ps -ef | Grep Firefox

Se você souber o nome do processo de destino, podemos usar o comando pidof para obter diretamente o PID.

$ pidof Firefox

Outro comando interessante para fazer o trabalho é o PGREP. Opera diretamente na lista de processos atualmente em execução. O comando PGREP assumirá o nome do processo como o parâmetro e imprimirá o PID de qualquer entrada correspondente.

$ PGREP Firefox

Observe o PID do processo de destino. A próxima seção deste artigo exibirá encerrar o processo pelo seu PID.

Matando um processo

Matar um processo requer o envio de um sinal de terminal para o processo. No entanto, não há um único sinal de terminação. Existem vários deles, cada um agindo um pouco diferente dos outros. Então, é crucial entendê -los primeiro.

Sinais de matar Linux

O comando Kill in Linux é responsável por enviar os sinais de rescisão. Para uma explicação detalhada, confira este guia no comando linux kill. Em resumo, você diz ao comando de matar qual sinal enviar para qual processo (usando PID).

Para obter a lista completa de todos os sinais de rescisão, execute o seguinte comando:

$ kill -l

Na maioria das vezes, no entanto, precisaremos de apenas alguns deles. Aqui estão explicações detalhadas dos sinais de rescisão mais comuns que você deve conhecer.

  • SIGUP (1) - O terminal de controle está pendurado ou o processo de controle está morto. Em tal situação, o SIGUP recarregará os arquivos de configuração e abrirá/fechará arquivos de log.
  • Sigkill (9) - É um sinal de morte direta para o processo de destino. Deve ser usado como o último recurso para encerrar um processo. Se um processo for encerrado usando Sigkill, ele não salvará dados ou limpeza após a rescisão do processo.
  • Sigterm (15) - Ele envia um sinal de terminação para o processo de destino. Sigterm é o sinal padrão para enviar. Também é considerado o método mais seguro de encerrar um processo.

Matando um processo usando matar

Esta é a maneira padrão de encerrar um processo de destino no Linux. O comando Kill segue a seguinte estrutura de comando:

$ Kill -

Por exemplo, para enviar o SIGTERM para um processo, o comando ficaria assim:

$ kill -15

Da mesma forma, se você deseja enviar Sigkill, use o seguinte comando:

$ kill -9

Saiba mais sobre o comando Linux Kill com explicações e exemplos detalhados.

Matando vários processos usando o killall

O comando killall age semelhante a matar. No entanto, em vez de definir um PID específico, ele usa o nome do processo e envia o sinal de terminação especificado para todos os processos que correspondem ao nome.

A estrutura de comando de Killall se parece com o seguinte:

$ killall -

Por exemplo, o seguinte comando Killall enviará o SigMert a todos os processos do Firefox em execução:

$ Killall -15 Firefox

Confira este guia sobre o comando linux killall para explicações detalhadas com exemplos. Também é recomendável conferir a página do homem de Killall:

$ man killall

Matando vários processos usando pkill

Semelhante ao comando Killall, o PKill também pode processar processos de pesquisa com base no nome e enviar o sinal de terminação especificado. A estrutura de comando também é quase semelhante;

$ pkill -

Por exemplo, use o seguinte comando pkill para encerrar o processo do Firefox com o SIGTERM:

$ pkill -15 Firefox

Como sempre, verifique a página do homem do PKILL para obter explicações detalhadas com todas as nuances:

$ man pkill

Pensamentos finais

Este guia mostra várias maneiras de matar um processo por seu PID. Também demonstra métodos alternativos usando o nome do processo em vez de PID. É sempre melhor ter várias ferramentas à sua disposição. Aqui, usamos comandos PS e PGREP para encontrar os comandos PID e Kill, Pkill e Killall para matar processos.

Em muitas situações, você pode querer se livrar de processos de fundo incômodos que estão com defeito. Saiba mais sobre como identificar processos de fundo no Linux. Em seguida, seguindo os métodos deste guia, você pode facilmente se livrar dos indesejados.
Computação feliz!