Eu entendo que está fora do tópico, não consegui encontrar em nenhum lugar online e estava pensando que talvez os gurus da programação na comunidade saibam disso.
Eu costumo usar
kill -9 pid
para matar o trabalho. Eu sempre me perguntei a origem de 9. Eu pesquisei online e dizia
"9 significa sinal KILL que não é capturável ou ignorável. Em outras palavras, sinalizaria o processo (algum aplicativo em execução) para encerrar imediatamente" (fonte: http://wiki.answers.com/Q/What_does_kill_-9_do_in_unix_in_its_entirety )
Mas, por que 9? e os outros números? existe algum significado histórico ou por causa da arquitetura do Unix?
Respostas:
Veja o artigo da Wikipedia sobre sinais Unix para a lista de outros sinais. SIGKILL acabou de obter o número 9.
Você também pode usar os mnemônicos, assim como os números:
fonte
Houve 8 outros sinais que eles encontraram primeiro.
fonte
Acho que uma resposta melhor aqui é simplesmente esta:
Quanto ao "significado" de 9 ... Eu diria que provavelmente não há nenhum. De acordo com The Linux Programming Interface (p 388) :
fonte
Primeiro você precisa saber o que são sinais em sistemas do tipo Unix (levará apenas alguns minutos).
Existem vários tipos de sinais que podemos usar - para obter uma lista completa de todos os sinais disponíveis / possíveis, use o comando " $ kill -l ":
Na saída acima é claramente visível, que cada sinal tem um ' número de sinal ' (por exemplo, 1, 2, 3) e um ' nome de sinal ' (por exemplo, SIGUP, SIGINT, SIGQUIT) associado a ele. Para uma pesquisa detalhada sobre o que cada Signal faz, visite este link .
Finalmente, chegando à pergunta "Por que o número 9 no comando kill -9 ":
Existem vários métodos de entrega de sinais a um programa ou script. Um dos métodos comumente usados para enviar sinal é usar o comando kill - a sintaxe básica é:
Onde sinal é o número ou nome do sinal, seguido pelo Id do processo (pid) para o qual o sinal será enviado.
Por exemplo - -SIGKILL (ou -9 ), o sinal mata o processo imediatamente.
e
ambos os comandos são a mesma coisa, ou seja, acima usamos o 'nome do sinal' e, mais tarde, usamos o 'número do sinal'.
Veredicto : Há uma escolha em aberto se usar o 'nome do sinal' ou 'número do sinal' com o comando kill .
fonte
É uma referência a "Revoulution 9" dos Beatles. Uma coleção de clipes de som amarrados e ruídos encontrados, esta gravação apresenta John Lennon repetindo continuamente "Número 9, Número 9 ..." Além disso, essa música chamou mais atenção em 1969 quando foi descoberto que, quando tocada ao contrário, John parecia estar dizendo "Ligue-me, homem morto ..."
Portanto, o nono sinal estava destinado a ser o mais mortal dos sinais de morte.
fonte
Há uma lista muito longa de sinais Unix, que você pode ver na Wikipedia . Um tanto confuso, você pode usar
kill
para enviar qualquer sinal a um processo. Por exemplo,kill -SIGSTOP 12345
força o processo 12345 a pausar sua execução, enquanto okill -SIGCONT 12345
informa para continuar. Uma versão um pouco menos enigmática dekill -9
ékill -SIGKILL
.fonte
kill
. Provavelmente porque o comportamento padrão para a maioria do conjunto original de sinais (números de 1 a 15) era encerrar o processo.Não acho que haja qualquer significado para o número 9. Além disso, apesar da crença comum,
kill
é usado não apenas para matar processos, mas também enviar um sinal para um processo. Se você estiver realmente curioso, pode ler aqui e aqui .fonte
porque matar -9: o número 9 na lista de sinais foi escolhido como SIGKILL em referência a "matar as 9 vidas de um gato".
fonte
SIGKILL
use para matar o processo.SIGKILL
não pode ser ignorado ou manipulado. No Linux, maneiras de darSIGKILL
.fonte
Digite o comando kill -l em seu shell
você vai descobrir que no 9º número [ 9) SIGKILL ], então pode-se usar kill -9 ou kill -SIGKILL
SIGKILL é um sinal de morte seguro, não pode ser desposicionado, ignorar ou manipular. Sempre funciona com seu comportamento padrão, que é matar o processo.
fonte
O
-9
é o signal_number, e especifica que a mensagem kill enviada deve ser do tipo KILL (não capturável, não ignorável).Qual é o mesmo abaixo.
Sem especificar um signal_number, o padrão é -15, que é TERM (sinal de terminação de software). Digitar
kill <pid>
é o mesmo quekill -15 <pid>
.fonte
Ambos são iguais a kill -sigkill processID, kill -9 processID. É basicamente para encerramento forçado do processo.
fonte
existem alguns processos que não podem ser eliminados como este "eliminar% 1". se tivermos que encerrar esse processo, um comando especial é usado para matar aquele processo que é kill -9. por exemplo, abra o vim e pare se estiver usando ctrl + z então veja as tarefas e depois de aplicar o processo kill, então este processo não será encerrado, então aqui usamos o comando kill -9 para encerrar.
fonte