Android

Comando kill no linux

Comando kill en Linux - Como usarlo y sus variantes

Comando kill en Linux - Como usarlo y sus variantes

Índice:

Anonim

O Linux é um sistema operacional excelente e avançado, mas não é perfeito. De vez em quando, alguns aplicativos podem começar a se comportar de maneira irregular e deixar de responder ou começar a consumir muitos recursos do sistema. Aplicativos que não respondem não podem ser reiniciados porque o processo original do aplicativo nunca é encerrado completamente. A única solução é reiniciar o sistema ou interromper o processo de aplicação.

Existem vários utilitários que permitem encerrar processos errados, eliminando o mais comumente usado.

Comando kill

kill é um shell embutido na maioria dos reservatórios derivados de Bourne, como Bash e Zsh. O comportamento do comando é um pouco diferente entre os shells e o executável autônomo /bin/kill .

Use o comando type para exibir todos os locais em seu sistema que contêm kill :

type -a kill

kill is a shell builtin kill is /bin/kill

A saída acima informa que o shell interno tem prioridade sobre o executável independente e é usado sempre que você digita kill . Se você deseja usar o binário, digite o caminho completo para o arquivo /bin/kill ., usaremos o Bash embutido.

A sintaxe do comando kill assume o seguinte formato:

kill…

O comando kill envia um sinal para processos ou grupos de processos especificados, fazendo com que eles ajam de acordo com o sinal. Quando o sinal não é especificado, o padrão é -15 (-TERM).

Os sinais mais usados ​​são:

  • 1 ( HUP ) - Recarrega um processo. 9 ( KILL ) - Mate um processo. 15 ( TERM ) - Pare graciosamente um processo.

Para obter uma lista de todos os sinais disponíveis, chame o comando com a opção -l :

kill -l

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

  1. Usando o número (por exemplo, -1 ou -s 1 ). Usando o prefixo “SIG” (por exemplo, -SIGHUP ou -s SIGHUP ).Sem o prefixo “SIG” (por exemplo, -HUP ou -s HUP ).

Os seguintes comandos são equivalentes entre si:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

Os PIDs fornecidos ao comando kill podem ser um dos seguintes:

  • Se o PID for maior que zero, o sinal será enviado ao processo com um ID igual ao PID . Se o PID for igual a zero, o sinal será enviado a todos os processos no grupo de processos atual. Em outras palavras, o sinal é enviado a todos os processos pertencentes ao GID do shell que invocou o comando kill . Use o comando ps -efj para visualizar os IDs do grupo de processos (GIDs). Se o PID for igual a -1 , o sinal será enviado a todos os processos com o mesmo UID do usuário que está chamando o comando. Se o usuário que está chamando for root, o sinal será enviado a todos os processos, exceto init e o próprio processo kill . Se o PID for menor que -1 , o sinal será enviado a todos os processos no grupo de processos eq com GID igual ao valor absoluto de o PID .

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

Terminando processos usando o comando kill

Para finalizar ou interromper um processo com o comando kill , primeiro você precisa encontrar o número de identificação do processo (PID). 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 os PIDs do navegador, use o comando pidof :

pidof firefox

O comando imprimirá os IDs de todos os processos do Firefox:

6263 6199 6142 6076

Depois de conhecer os números dos processos, você pode finalizar todos eles enviando o sinal TERM :

kill -9 2551 2514 1963 1856 1771

Em vez de procurar PIDs e finalizar os processos, você pode combinar os comandos acima em um:

kill -9 $(pidof firefox)

Recarregando processos usando o comando kill

Outro caso de uso comum para kill é enviar o sinal HUP , que informa aos processos para recarregar suas configurações.

Por exemplo, para recarregar o Nginx, você precisa enviar um sinal para o processo mestre. O ID do processo principal do Nginx pode ser encontrado no arquivo nginx.pid , que normalmente está localizado no diretório /var/run .

Use o comando cat para encontrar o PID principal:

cat /var/run/nginx.pid

30251

Depois de encontrar o PID mestre, recarregue as configurações do Nginx digitando:

sudo kill -1 30251

O comando acima deve ser executado como root ou usuário com privilégios de sudo.

Conclusão

O comando kill é usado para enviar um sinal aos processos. O sinal usado com mais freqüência é SIGKILL ou -9 , que finaliza os processos fornecidos.

matar terminal