Je comprends que c'est hors sujet, je ne trouve nulle part en ligne et je pensais que les gourous de la programmation de la communauté pourraient le savoir.
J'utilise habituellement
kill -9 pid
pour tuer le travail. Je me suis toujours demandé l'origine de 9. Je l'ai recherché en ligne et il est dit
"9 Signifie un signal KILL qui n'est ni capturable ni ignorable. En d'autres termes, cela signifierait au processus (une application en cours d'exécution) de se fermer 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 chiffres? y a-t-il une signification historique ou à cause de l'architecture d'Unix?
Réponses:
Voir l'article de wikipedia sur les signaux Unix pour la liste des autres signaux. SIGKILL vient juste d'obtenir le numéro 9.
Vous pouvez aussi bien utiliser les mnémoniques que les nombres:
la source
Il y avait 8 autres signaux qu'ils ont trouvé en premier.
la source
Je pense qu'une meilleure réponse ici est simplement ceci:
Quant à la "signification" de 9 ... je dirais qu'il n'y en a probablement pas. Selon l' interface de programmation Linux (p 388) :
la source
Vous devez d'abord savoir ce que sont les signaux dans les systèmes de type Unix (cela ne prendra que quelques minutes).
Il existe plusieurs types de signaux que nous pouvons utiliser - pour obtenir une liste complète de tous les signaux disponibles / possibles, utilisez la commande " $ kill -l ":
Dans la sortie ci-dessus, il est clairement visible que chaque signal a un « numéro de signal » (par exemple 1, 2, 3) et un « nom de signal » (par exemple SIGUP, SIGINT, SIGQUIT) qui lui est associé. Pour une recherche détaillée de ce que fait chaque signal, visitez ce lien .
Enfin, pour arriver à la question "Pourquoi le numéro 9 dans la commande kill -9 ":
Il existe plusieurs méthodes pour transmettre des signaux à un programme ou à un script. Une des méthodes couramment utilisées pour envoyer un signal est d'utiliser la commande kill - la syntaxe de base est:
Où le signal est le numéro ou le nom du signal, suivi de l'identifiant de processus (pid) auquel le signal sera envoyé.
Par exemple - -SIGKILL (ou -9 ), le signal tue le processus immédiatement.
et
les deux commandes sont identiques, c'est-à-dire que ci-dessus, nous avons utilisé le «nom du signal», et plus tard, nous avons utilisé le «numéro du signal».
Verdict : On a le choix entre utiliser le «nom du signal» ou le «numéro du signal» avec la commande kill .
la source
C'est une référence à "Revoulution 9" des Beatles. Une collection d'extraits sonores enchaînés et de bruits trouvés, cet enregistrement met en scène John Lennon répétant encore et encore "Number 9, Number 9 ..." dire "Allume-moi, homme mort ..."
Par conséquent, le neuvième signal était destiné à être le plus meurtrier des signaux de mise à mort.
la source
Il existe une très longue liste de signaux Unix, que vous pouvez consulter sur Wikipedia . Un peu déroutant, vous pouvez en fait utiliser
kill
pour envoyer n'importe quel signal à un processus. Par exemple,kill -SIGSTOP 12345
force le processus 12345 à suspendre son exécution, tandis que luikill -SIGCONT 12345
dit de reprendre. Une version légèrement moins cryptique dekill -9
iskill -SIGKILL
.la source
kill
. Probablement parce que le comportement par défaut de la plupart des signaux d'origine (numéros 1 à 15) était de mettre fin au processus.Je ne pense pas que le numéro 9 ait une signification. De plus, malgré la croyance commune, il
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 ici et ici .la source
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".
la source
SIGKILL
utiliser pour tuer le processus.SIGKILL
ne peut pas être ignoré ou manipulé. Sous Linux, des moyens de donnerSIGKILL
.la source
Tapez la commande kill -l sur votre shell
vous trouverez cela au 9ème numéro [ 9) SIGKILL ], donc on peut utiliser soit kill -9 soit kill -SIGKILL
SIGKILL est un signal de destruction sûr, il ne peut pas être déplacé, ignoré ou manipulé. Il fonctionne toujours avec son comportement par défaut, qui consiste à tuer le processus.
la source
Le
-9
est le signal_number, et spécifie que le message kill envoyé doit être du type KILL (non capturable, non ignorable).Ce qui est le même que ci-dessous.
Sans spécifier de numéro_signal, la valeur par défaut est -15, qui est TERM (signal de terminaison du logiciel). Dactylographie
kill <pid>
est la même quekill -15 <pid>
.la source
Les deux sont identiques à kill -sigkill processID, kill -9 processID. C'est essentiellement pour l'arrêt forcé du processus.
la source
il y a un processus qui ne peut pas être tué comme celui-ci "kill% 1". si nous devons terminer ce processus, une commande spéciale est utilisée pour tuer ce processus qui est kill -9. par exemple, ouvrez vim et arrêtez si en utilisant ctrl + z puis voyez les travaux et après appliquer le processus de destruction, ce processus ne se terminera pas donc ici nous utilisons la commande kill -9 pour terminer.
la source