La commande kill
La commande kill permet d’envoyer un signal à un processus. Elle est couramment utilisée pour fermer (tuer) un programme en cours d’exécution. Au travers de quelques exemples je vais vous montrer les utilisations les plus courantes de la commande kill.
Fermer un processus proprement
Pour utiliser la commande kill, il est nécessaire de connaître le PID du processus à fermer. Pour obtenir le PID d’un processus vous pouvez utiliser la commande pidof. Par exemple pour récupérer le PID de firefox, utilisez la commande suivante:
1 2 | $ pidof firefox 3143 |
Enfin pour demander au programme firefox ayant le PID 3143 de se fermer correctement, utilisez la commande kill de la manière suivante (sans option):
1 | kill 3143 |
Tuer un processus
Si un vous n’arrivez pas à fermer un programme qui a par exemple planter, il est interressant d’utiliser kill avec une option particulière permettant de forcer la fermeture du processus. La commande kill permet d’envoyer des signaux à des processus, le signal utilisé pour forcer la fermeture d’un programme est SIGKILL. Sachez également que les signaux sont numérotés, le signal SIGKILL a le numéro 9.
Pour forcer la fermeture d’un processus, utilisez la commande kill avec l’option -s, cette option permet de spécifier le signal à envoyer.
Dans l’exemple ci-dessous, nous envoyons le signal SIGKILL à un processus ayant le PID 3143. Le processus va être tuer immédiatement.
1 | kill -s 9 3143 |
Vous pouvez taper la commande également de la manière suivante (cela revient exactement au même):
1 | kill -s SIGKILL 3143 |
Fermer un processus en récupérant le PID
Pour fermer un processus tout en récupérant son PID sur une seule ligne de commande:
1 | $ kill $(pidof firefox) |
La commande ci-dessous récupère le PID de firefox est appelle la commande kill en fournissant à cette dernière le PID récupéré.
Une autre manière est de tuer un processus sans avoir à récuperer son PID est d’utiliser la commande pkill. Par exemple pour fermer firefox:
1 | $ pkill firefox |
Pour forcer la fermeture d’un programme avec pkill utilisez la commande ci-dessous:
1 | $ pkill -KILL nom_du_programme |
Lister les signaux disponibles
La commande kill dispose d’un large eventail de sigaux qu’il est possible d’utiliser. Pour connaitre la liste des signaux disponibles, utilisez l’option -l comme ci-dessous:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $ 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 |