Android

Como matar um processo no linux

3 Formas de "Matar" um Processo no Linux

3 Formas de "Matar" um Processo no Linux

Índice:

Anonim

Você já enfrentou a situação em que iniciou um aplicativo e, de repente, enquanto o usa, ele fica sem resposta e trava inesperadamente? Você tenta iniciar o aplicativo novamente, mas nada acontece porque o processo original do aplicativo nunca é realmente desligado completamente.

Bem, isso já aconteceu com todos nós em algum momento, não é? A solução é encerrar ou interromper o processo de inscrição. Mas como?

Felizmente, existem vários utilitários no Linux que permitem matar processos errantes., mostraremos como usar os comandos kill , killall e pkill para finalizar um processo no Linux.

A principal diferença entre essas ferramentas é que kill termina os processos com base no número de identificação do processo (PID), enquanto os comandos killall e pkill encerram os processos em execução com base em seus nomes e outros atributos.

Usuários regulares podem matar seus próprios processos, mas não aqueles que pertencem a outros usuários, enquanto o usuário root pode matar todos os processos.

Sinais de abate do sistema

kill , killall e pkill enviam um sinal para processos ou grupos de processos especificados. Quando nenhum sinal é especificado, cada ferramenta envia 15 ( TERM ).

Os sinais mais usados ​​são:

  • 1 (-HUP): para recarregar um processo. 9 (-KILL): para matar um processo. 15 (-TERM): para interromper normalmente um processo.

Os sinais podem ser especificados de três maneiras diferentes:

  • usando o número (por exemplo, -1) com o prefixo “SIG” (por exemplo, -SIGHUP) sem o prefixo “SIG” (por exemplo, -HUP).

Use a opção -l para listar todos os sinais disponíveis:

kill -l # or killall -l

As etapas descritas abaixo funcionarão em todas as distribuições Linux.

Terminando processos usando o comando kill

Para finalizar um processo com o comando kill , primeiro você precisa encontrar o PID do processo. Você pode fazer isso usando diferentes comandos, como top , ps , pidof e pgrep .

Digamos que o navegador Firefox deixou de responder e você precisa interromper o processo do Firefox. Para encontrar o ID do processo, use o comando pidof :

pidof firefox

O comando imprimirá todos os processos do Firefox:

2551 2514 1963 1856 1771

Depois que você souber que o Firefox processa PIDs para finalizar todos eles, envie o sinal TERM :

kill -9 2551 2514 1963 1856 1771

Terminando processos usando o comando killall

O comando killall finaliza todos os programas que correspondem a um nome especificado.

Usando o mesmo cenário de antes, você pode interromper o processo do Firefox digitando:

killall -9 firefox

killall aceita várias opções, como enviar sinais para processos pertencentes a um determinado usuário, comparar nomes de processos com expressões regulares e o tempo de criação. Você pode obter uma lista de todas as opções digitando killall (sem argumentos) no seu terminal.

Por exemplo, para finalizar todos os processos em execução como um usuário “sara”, você deve executar o seguinte comando:

sudo killall -u sara

Finalizando processos usando o comando pkill

pkill finaliza processos que correspondem ao padrão fornecido na linha de comando:

pkill -9 firefox

O nome do processo não precisa ser uma correspondência exata.

Com o pkill você também pode enviar um sinal para processos pertencentes a um determinado usuário. Para eliminar apenas os processos do Firefox pertencentes ao usuário “sara”, digite:

pkill -9 -u sara firefox

Conclusão

Terminar programas que não respondem usando os comandos kill , killall e pkill é uma tarefa fácil. Você só precisa saber o nome do processo ou o PID.

matar terminal