Un proceso zombi es un tipo de proceso que se ha completado, pero cuya entrada aún permanece en la tabla de procesos debido a la falta de comunicación entre el proceso secundario y el principal. El pequeño programa desarrollado en este tutorial puede ser útil para fines de aprendizaje. P.ej. cuando se trata de detectar procesos zombis en Linux.
En este tutorial, crearé un proceso zombi ficticio en Debian 10.
Creación de un proceso zombi ficticio en Debian 10
Abra el bloc de notas y pegue el siguiente código.
#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; }
Guarde este archivo como zombie.c . El proceso zombie creado con este código se ejecutará durante 120 segundos. Puede ajustar la duración del tiempo (en segundos) en la función de suspensión.
A continuación, abra la terminal y ejecute el siguiente comando para compilar el código anterior.
cc zombie.c -o zombie
Después de este comando, se debería haber creado un archivo objetivo ejecutable en su directorio actual.
Ejecute el archivo zombi:
./zombie
Cuando ejecute el siguiente comando con grep, obtendrá la ID principal del proceso zombi.
ps axo stat,ppid,pid,comm | grep -w defunct
Así es como se crea un proceso zombi ficticio en Debian 10. Espero que no tenga dificultades para seguir este tutorial.