Sobes.tech
Middle

Comment terminer un processus zombie?

sobes.tech IA

Réponse de l'IA

Un processus zombie est un processus qui a terminé son exécution mais continue d'occuper une place dans la table des processus du système, car son processus parent n'a pas encore lu le code de retour via l'appel système wait().

Pour terminer un processus zombie, il faut d'abord terminer son processus parent. Lorsqu'il se termine, le processus zombie sera adopté par le processus init (ou son équivalent moderne, comme systemd), qui effectuera l'appel système wait() nécessaire et supprimera le zombie de la table des processus.

Étapes pour terminer un processus zombie :

  1. Déterminer le PPID (identifiant du processus parent) du processus zombie.

    # Rechercher les processus zombie et leur PPID
    ps aux | awk '{ print $8, $2, $4 }' | grep Z
    

    La sortie sera approximativement : Z 1234 5678, où 1234 est le PID du processus zombie, et 5678 est le PPID du processus parent.

  2. Terminer le processus parent. Utilisez le PID du processus parent obtenu à l'étape précédente.

    # Terminer de force le processus parent
    kill -9 <PPID_du_processus_parent>
    

    Utilisez le signal SIGKILL (-9) pour garantir la terminaison du processus parent si le signal SIGTERM normal ne fonctionne pas.

Après avoir terminé le processus parent, le système supprimera automatiquement le processus zombie. En cas rare, si le problème avec les processus zombie est dû à un problème profond du noyau du système d'exploitation, il peut être nécessaire de redémarrer le serveur.