Tuer un processus en ligne de commande sous Linux
I. Présentation
Sous Linux, certains processus sont coriaces ! C'est notamment le cas des processus buggués ou mal codés qui refusent de se fermer lors d'une extinction ou quand ils sont tout simplement freezés. Une procédure très simple et rapide existe néanmoins pour les tuer et mettre fin à leur exécution, et elle marche à tous les coups !
II. Repérer le PID avec ps
Dans un premier temps, il faut récupérer le PID c'est à dire le "Processus Identifier", c'est un numéro associé à un processus et qui permet de l'identifier de façon unique. On utilise pour cela la commande "ps" (pour "process snapshot" selon la manpage de la commande : "ps - report a snapshot of the current processes.", merci à @AlineKav pour l'info). Enfin bref, admettons que je souhaite récupérer le PID du processus nginx, je saisirai la commande suivante :
ps -edf |grep "nginx
Voila le résultat que vous pourrez avoir :
On voit donc que le PID du processus Nginx pour cet instant est "2895". Attention, au prochain démarrage du processus nginx, le PID aura changé, ce n'est pas quelque chose de fixe entre plusieurs démarrages, d'où l’intérêt de savoir le récupérer. On voit également ici que notre commande de recherche du processus nginx renvoie plusieurs processus. Bien que l'on puisse identifier le processus maître (celui ayant lancé les autres instances) par son nom dans la dernière colonne ("master process"), ce n'est pas toujours le cas suivant les processus.
Note : Une astuce pour identifier un processus principal (celui à tuer pour tuer les autres) est de regarder la troisième colonne qui indique quel PID a lancé le processus en question. Ici "1" est le processus racine de la machine Linux, les autres processus ont comme PID parent le PID du processus maître, ce qui est logique ;).
III. Tuez les tous avec kill
Maintenant que nous avons notre cible, il ne reste plus qu'à la tuer, on utilise pour cela la commande "kill" qui porte bien son nom avec l'option "-9" et suivi du PID à tuer :
kill -9 2895
Le processus est maintenant éteint. On peut également pour ceux qui le désirent mettre plusieurs PID à la suite de l'option "-9".
Plus rapide :
kill -9 $(top -n1 -b | grep NomDuPrecessus | cut -c1-6)
Mais merci !
Bonjour a tous,
J’ai l ‘ erreur suivante :
root@Debian:/home/andre# apt-get dist-upgrade
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances
Lecture des informations d’état… Fait
Calcul de la mise à jour… Fait
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
1 partiellement installés ou enlevés.
Après cette opération, 0 o d’espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n]
Paramétrage de usb-imagewriter (0.1.3-7) …
chown: utilisateur incorrect: « iurt:iurt »
chown: utilisateur incorrect: « iurt:iurt »
chown: utilisateur incorrect: « iurt:iurt »
chown: utilisateur incorrect: « iurt:iurt »
dpkg: erreur de traitement du paquet usb-imagewriter (–configure) :
le sous-processus script post-installation installé a retourné une erreur de sortie d’état 1
Des erreurs ont été rencontrées pendant l’exécution :
usb-imagewriter
E: Sub-process /usr/bin/dpkg returned an error code (1)
comment puis-je arreter ce sous processus ?
en vous remerciant de vos réponse, merci