kill
Sommaire
La commande kill permet d'envoyer un signal à un processus.
Le signal envoyé par défaut est le signal TERM qui tente de fermer le processus. Ce comportement fait que kill est souvent associé au fait de terminer des processus, mais la commande peut faire plus que ça.
Fermer un processus
Pour forcer un processus à se terminer, on peut envoyer le signal TERM à l'aide de la commande kill. Ce signal est passé au processus et le comportement par défaut est de terminer le processus à la réception du signal.
Le signal TERM (SIGTERM) est celui envoyé par défaut par kill, il suffit donc de donner le numéro de processus (son PID) à fermer après le nom de la commande.
Voici par exemple comment fermer le processus 17041 (si on a les droits suffisant pour le faire):
$ pidof vsftpd 17041 $ kill 17041
Forcer la fermeture d'un processus
Un processus peut intercepter le signal TERM décrit précédemment. Ceci est utile dans certains cas d'utilisation de programmes, mais cela empêche de ferme le processus par ce biais.
Pour forcer la fermeture d'un processus, on peut utiliser le signal "KILL" (SIGKILL). Ce signal ferme le processus, et ne peut être intercepté par ce dernier.
Voici un exemple d'utilisation du signal SIGKILL pour fermer un processus. Le signal à le numéro 9 comme vous pourrez le voir à la section suivante.
$ pidof watch 20323 20156 $ kill -9 20323 20156
Les autres signaux signaux
Pour envoyer un signal à l'aide de kill, il suffit de passer en option le numéro ou le nom du signal précédé d'un tiret.
Pour obtenir la liste des signaux, il faut utiliser l'option -l de kill:
$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
La signification exacte de chacun des signaux peut être trouvé sur la page de manuel "signal".
Dans certains applications, certains signaux sont utilisé à des fins différentes que leur signification initiale. Par exemple, lorsque le serveur Bind (serveur DNS) reçoit le signal "HUP", il relit le fichier de configuration et recharge la base de donnée
Voici par exemple comment recharger la configuration de Bind 8 sans redémarrer tout le serveur:
$ pidof bind 20156 $ kill -HUP 20156
killall
Sous Linux, il existe une variante de la commande kill qui permet de spécifier les processus par leur nom plutôt que par leur numéro. Cette variante s'appelle killall et est décrite dans une autre page.
Page de manuel
La page de manuel de kill détaille les options de la commande. Les options les plus utilisés ont été vue ici.
Notez que la version de Debian (ou Ubuntu) de la page de manuel est plus complète que les autres version. Toutes les versions sont accessible via la page de manuel de kill sur ce site.
Pour connaître la signification des signaux, il existe une page de manuel signal dans la section 7.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre