arrêter un processus avec le PID en ligne de commande

La commande "kill" permet d'expédier un signal à un processus.

Sa syntaxe est la suivante: kill [options] PID

Elle est souvent utilisée afin d'interrompre un programme sans IHM ou récalcitrant. Si j'ai lancé un programme donné, par exemple xeyes, un processus sera actif. Si je le lance deux fois, deux processus seront actifs, et ainsi de suite.... Pour demander à un processus de cesser de fonctionner (on parle de le «tuer»), je peux d'abord invoquer ps auxw pour connaître son PID, si par exemple le PID est 592, le tuer en invoquant kill 592

 
   [delcros@mistra ~]# ps auxw|grep xeyes
   592  0.6  0.0   5884  1792 pts/2    S    10:53   0:00 xeyes
   596  0.0  0.0   3940   780 pts/2    S+   10:53   0:00 grep xeyes

La première colonne présente le PID et la dernière le nom du programme invoqué. La seconde ligne, ici, correspond au grep invoqué, qui se «voit ainsi lui-même».

Seul l'utilisateur auquel le processus appartient (ou root) peut le tuer.

La commande killall tue un processus mais au lieu de fournir son PID vous indiquerez son nom (la commande qui le lança). Si plusieurs processus y correspondent vous tentez ainsi de tous les tuer, mieux vaut utiliser l'option "-i" (pour interactif) qui demande confirmation avant de tenter d'arrêter un processus.

Un processus peut se trouver dans un état ne permettant pas de lui demander de s'interrompre. Tenter en ce cas de lui expédier le signal HUP puis INT en invoquant par exemple "kill -HUP PID". S'il fait la sourde oreille demander au noyau de le tuer sans condition en lui expédiant KILL («KILL» est ici le libellé d'un signal). Attention: le signal KILL ne laisse pas le processus ainsi condamné prendre des dispositions parfois souhaitables ou nécessaires, par exemple fermer un fichier, donc peut endommager ou perdre des données voire causer des dysfonctionnements.

Obtenir les options de commandes, dans un terminal :

 $ man kill 
Lien : Pages man "kill"

Source : Les commandes fondamentales de GNU/Linux Sous License GNU Free Documentation License 1.3 sauf mention contraire.

Révisions

06/30/2017 - 16:25
Mangy Dog