Utiliser la commande KILL dans Linux

jeudi 17 février 2011
par:
popularité : 99%

Un processus qui bloque un terminal ou ne fait rien est appelé généralement un processus suspendu. Parfois un utilisateur a un processus qui ne se termine pas correctement (spécialement avec les programmeurs). Ce genre de processus est appelé un processus fugitif. Dans les deux cas, la seule manière de restaurer normalement le système est de terminer le processus avec la commande kill.

Pour utiliser kill, vous devez avoir accès à une autre fenêtre ou console ou vous pouvez taper la commande. Si votre terminal est complètement bloqué, vous aurez à trouver un autre ou vous pourrez vous loguer. Comme utilisateur, vous pouvez "tuer" vos propres processus. Comme root vous pouvez terminer n’importe quel processus avec la commande kill.

Pour utiliser la commande kill, vous aurez besoin de connaitre le number process identification (PID) du processus que vous voulez tuer. Utiliser la commande ps pour chercher cette information. Ensuite utiliser le PID comme argument de la commande kill. Par exemple, le terminal suivant montre un processus appelé bad_prog lancé par walterqui est suspendu et qui a besoin d’être terminé. Le PID est obtenu en affichant les processus de walter :

$ ps -u walter

USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND

walter 561 0.1 6.8 364 472 v01 S 13:19 0:01 -bash

walter 598 9.3 4.1 2736 472 v01 R 15:26 2:01 bad_prog

$ kill 598

Quand vous tapez la commande kill, vous n’aurez aucun message de retour si elle a fonctionnée correctement. La seule manière de vérifier que le processus s’est terminé correctement est de taper une autre commande ps.

Si le processus ne se termine pas correctement avec la commande kill, vous avez besoin de passer à la vitesse supérieure. La commande kill a plusieurs niveaux d’opérations . Quand elle tapée sans aucun argument sauf celui du PID, elle essait de terminer le processus proprement. Si ca ne fonctionne pas, utilisez l’option -9 lequel est un peu plus musclé pour terminer un processus par la force. Par exemple, pour forcer à terminer un processus avec le PID 726, taper la commande suivante :

kill -9 726

Si ca ne fonctionne pas encore, il est temps d’utiliser l’option -15, la forme la plus puissante de la commande kill. Utilisez seulement cette option quand les autres niveaux de la commande n’ont pas fonctionnés. Pour utiliser cette option, tapez la commande :

kill -15 726

Si ca ne fonctionne (c’est que vous avez vraiment merdé), le processus peut être "immortel". Cette situation se présente rarement avec Linux et la seule solution est de redémarrer la machine.

Faites attention quand vous utilisez la commande kill quand vous êtes en root.


Commentaires

Logo de lumpy
mardi 23 octobre 2012 à 08h48 - par  lumpy

Si ca ne fonctionne pas encore, il est temps d’utiliser l’option -15, la forme la plus puissante de la commande kill.

Erreur, le 15 correspond à SIGTERM, le 9 correspond à SIGKILL (cf. man kill) : la différence entre les deux est bien expliquée sur Wikipedia.

Remarque plus générale : il serait intéressant que les articles soient datés : quand on tombe sur des how-to intéressants, savoir s’ils sont ou non à jour permet parfois d’éviter de mauvaises surprises.