Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Comment trouver et tuer un processus Zombie sur Linux (Defunct)

Également connu sous le nom de processus “défunct” ou “mort” – En termes simples, un processus zombie est un processus qui est mort mais qui est présent dans la table des processus du système. Idéalement, il aurait dû être nettoyé de la table des processus une fois son travail/exécution terminé, mais pour une raison quelconque, son processus parent ne l’a pas nettoyé correctement après l’exécution.

Dans ce tutoriel, je vous explique comment lister et tuer un processus Zombie sur Linux.

Comment trouver et tuer un processus Zombie sur Linux (Defunct)

Qu’est-ce qu’un processus Zombie ?

Lorsqu’un processus enfant meurt, le processus parent est informé afin qu’il puisse effectuer un nettoyage, comme libérer de la mémoire, etc. Cependant, le processus enfant passe à l’état de zombie si le processus parent n’est pas au courant de sa mort. Pour le parent, l’enfant existe toujours mais le processus enfant est en fait mort. C’est ainsi que les processus zombies (également connus sous le nom de processus défuncts) sont créés et restent dans le système.

Les zombies utilisent un peu de mémoire, mais ils ne posent généralement pas de problème. L’entrée dans la table des processus est petite, mais, tant qu’elle n’est pas libérée, l’ID du processus ne peut pas être réutilisé. Sur un système d’exploitation 64 bits, il est peu probable que cela pose des problèmes car le PCB est beaucoup plus grand que l’entrée de la table des processus.

Un grand nombre de zombies peut affecter la quantité de mémoire libre pour les autres processus. Si vous avez autant de zombies, cependant, vous avez un .

Comment trouver les processus zombies sur Linux

Vous pouvez utiliser n’importe quel utilitaire qui liste les processus avec leurs états.

ps

PS vous permet de lister les processus, on peut ensuite filtrer la liste sur la lettre Z ou l’état defunct à l’aide de la commande grep.

ps aux | egrep "Z|defunct"

Pour trouver le processus zombie, vérifiez ensuite la colonne STAT qui doit renvoyer Z+ et le mot defunct dans la commande.
Notez que ce filtre grep va renvoyer n’importe quel nom de processus contenant Z.

Comment trouver les processus Zombies sur Linux

Une autre façon plus efficace est de filtrer avec la commande awk sur la 8e colonne :

ps aux | awk '$8 ~ /^[Zz]/'
Comment trouver les processus Zombies sur Linux

Ensuite vous devez obtenir le PID du processus parent, pour cela, utilisez la commande ps de cette manière en spécifiant le PID du processus enfant :

 ps -o ppid= <PID>

Dans cet exemple, le processus enfant a pour PID 26707 que j’indique dans la commande pour obtenir le PID du processus parent 26706 :

Comment trouver les processus Zombies sur Linux

Et si vous souhaitez afficher les informations de manière plus automatiques :

ps -A -ostat,pid,ppid | grep -e '[zZ]'
Comment trouver les processus Zombies sur Linux

top

top est un gestionnaire de tâches pour Linux très efficace pour afficher la liste et des processus en cours d’exécution et obtenir des informations sur l’état du système.

La colonne S pour State permet de connaître l’état des processus avec les informations suivantes :

  • I = idle
  • R = (running) – en cours de fonctionnement
  • S = (sleeping) – en sommeil
  • D = sommeil ininterrompu
  • T = arrêté par le signal de contrôle du travail
  • t = arrêté par le débogueur pendant la trace
  • Z = zombie

A partir de là vous pouvez trouver les processus zombies facilement.
Par contre, il sera un peu plus difficile d’obtenir le PID du processus parent.
Top est plutôt pratique pour surveiller l’état des processus.

Comment trouver les processus Zombies sur Linux avec top

Pour rappel, la touche k permet de tuer le processus sélectionné.

Pour faciliter la recherche, vous pouvez utiliser le tri de top pour tier les processus par la colonne State (S).
Suivez ce tutoriel pour y par venir :

Comment tuer un processus zombie

Une fois que vous avez obtenu le processus du parent, vous pouvez arrêter le processus.
Pour tuer le processus, on utilise la commande kill en indiquant le PID du parent.

kill -9 <Parent PID>

Liens

Liens

L’article Comment trouver et tuer un processus Zombie sur Linux (Defunct) est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires