Comment saurez-vous le processus zombie ou morts sous Linux sont des processus qui ont été terminés, mais qui apparaissent toujours dans la table des processus en raison d'une incompatibilité de processus parent-enfant. Le processus parent contrôle l'état des processus enfants à l'aide de la fonction attendre(), et lorsque l'enfant se termine, cette fonction indique au parent de tuer le processus à partir de la mémoire.
Cependant, si le processus parent ne parvient pas à appeler une telle fonction pour l'un de ses processus enfants, ces processus enfants resteront "vivants" et occuperont des ressources système qui pourraient être utilisées par d'autres processus, affectant les performances. C'est pourquoi il est important de faire des kills de temps en temps pour tuer tous ces processus zombies. Pour ce faire, deux moyens peuvent être mis en avant : par l'IHM ou par le terminal :
via la borne
Pour tuer les processus zombies sous Linux, vous devez d'abord identifier ces processus, puis les tuer. Eh bien, cela pourrait être fait avec des outils comme ps, top, etc. Vous pouvez utiliser celui que vous aimez le plus. Par exemple, voici deux des commandes que vous pouvez utiliser pour détecter s'il y a des processus zombies:
top ps axo stat,ppid,pid,comm | grep -w defunct
Dans le premier cas, c'est une commande interactive qui vous montre les processus et vous montrera sur la deuxième ligne (comme vous pouvez le voir dans l'image) le nombre de processus zombies qu'il y a en ce moment (dans cette image 11). De plus, vous pouvez faire défiler la liste des processus et, dans la colonne S, vous pouvez voir l'état. Si c'est marqué Z, alors c'est un zombie.
Dans le second cas, il vous montrera simplement une sortie avec les processus zombies que vous avez en cours d'exécution.
Il est important, dans un cas comme dans l'autre, de faire attention au PID des processus zombies pour les tuer avec :
sudo kill -9 PID
Vous remplacer PID par le numéro de processus dans votre cas. De plus, si cela ne fonctionne pas, vous avez probablement besoin de privilèges, vous devrez donc utiliser sudo devant la commande...
Via l'interface graphique
Vous pouvez également le faire à l'aide d'outils graphiques, si vous n'avez pas beaucoup de dextérité avec le terminal et les commandes. Par exemple, vous pouvez utiliser des moniteurs système, tels que Moniteur système ou similaire. Et là aussi, vous devez d'abord localiser les processus zombies, puis les tuer :
- Ouvrez le Moniteur système.
- Accédez à l'onglet Processus.
- Maintenant, à l'aide de l'outil de recherche (loupe), recherchez le terme zombie.
- Sur les processus qui apparaissent dans la liste, cliquez dessus avec le bouton droit de la souris et appuyez sur Kill.
Il est important que vous vous assuriez qu'il s'affiche tous les processus du système. Pour vérifier cela, allez dans le menu des paramètres du moniteur système et regardez les options qui sont cochées.