Un processus zombie est un type de processus qui a été terminé, mais dont l'entrée reste dans la table des processus en raison d'un manque de communication entre le processus enfant et le processus parent. Le petit programme développé dans ce tutoriel peut être utile à des fins d'apprentissage. Par exemple. lorsqu'il s'agit de détecter des processus zombies sous Linux.
Dans ce tutoriel, je vais créer un processus zombie factice dans Debian 10.
Création d'un processus zombie factice dans Debian 10
Ouvrez le bloc-notes et collez le code suivant.
#include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main () { pid_t child_pid;child_pid = fork (); if (child_pid > 0) { sleep (120); } else { exit (0); } return 0; }
Enregistrez ce fichier sous zombie.c . Le processus zombie créé avec ce code s'exécutera pendant 120 secondes. Vous pouvez régler la durée (en secondes) dans la fonction de veille.
Ensuite, ouvrez le terminal et exécutez la commande suivante pour compiler le code ci-dessus.
cc zombie.c -o zombie
Après cette commande, un fichier objectif exécutable doit avoir été créé dans votre répertoire courant.
Exécutez le fichier zombie :
./zombie
Lorsque vous exécutez la commande suivante avec grep, vous obtiendrez l'ID parent du processus zombie.
ps axo stat,ppid,pid,comm | grep -w defunct
Voici donc comment vous créez un processus zombie factice dans Debian 10. J'espère que vous n'aurez aucune difficulté à suivre ce tutoriel.