110 votes

Pourquoi le chiffre 9 dans la commande kill -9 sous Unix ?

Je comprends que c'est hors sujet, mais je n'ai rien trouvé en ligne et je me disais que les gourous de la programmation de la communauté pourraient peut-être le savoir.
J'utilise généralement

kill -9 pid

pour mettre fin à l'emploi. Je me suis toujours demandé quelle était l'origine du 9. J'ai vérifié en ligne, et on peut lire

"9 Signifie TUER le signal qui ne peut être attrapé ou ignoré. En d'autres termes, il signale au processus (une application en cours d'exécution) de quitter immédiatement" (source : http://wiki.answers.com/Q/What_does_kill_-9_do_in_unix_in_its_entirety )

Mais pourquoi 9 ? et qu'en est-il des autres nombres ? y a-t-il une signification historique ou à cause de l'architecture d'Unix ?

8voto

MXW Points 21

Il existe une très longue liste de signaux Unix, que vous pouvez consulter sur Wikipedia . De manière quelque peu déroutante, vous pouvez en fait utiliser kill pour envoyer un signal à un processus. Par exemple, kill -SIGSTOP 12345 oblige le processus 12345 à interrompre son exécution, tandis que le processus kill -SIGCONT 12345 lui demande de reprendre. Une version un peu moins cryptique de kill -9 est kill -SIGKILL .

4voto

Ilia Frenkel Points 1929

Je ne pense pas que le numéro 9 ait une quelconque signification. De plus, malgré la croyance commune, kill est utilisé non seulement pour tuer des processus, mais aussi pour envoyer un signal à un processus. Si vous êtes vraiment curieux, vous pouvez lire aquí y aquí .

4voto

LaFleche78 Points 31

Pourquoi tuer -9 : le numéro 9 dans la liste des signaux a été choisi pour être SIGKILL en référence à "tuer les 9 vies d'un chat".

3voto

SIGKILL pour tuer le processus. SIGKILL ne peut être ignorée ou traitée. Dans Linux, les façons de donner SIGKILL .

kill -9 <process_pid> 
kill -SIGKILL <process_pid> 
killall -SIGKILL <process_name>
killall -9 <process_name>

1voto

Sandeep_black Points 647

Tapez la commande kill -l dans votre shell

vous constaterez qu'au 9ème numéro [ 9) SIGKILL ], de sorte que l'on peut utiliser kill -9 ou kill -SIGKILL

SIGKILL est un signal de mise à mort certain, qui ne peut pas être déplacé, ignoré ou manipulé. Il fonctionne toujours avec son comportement par défaut, qui est de tuer le processus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X