Un processo zombie è un tipo di processo che è stato completato, ma la cui voce rimane ancora nella tabella dei processi a causa della mancanza di comunicazione tra il processo figlio e il processo padre. Il piccolo programma sviluppato in questo tutorial può essere utile per scopi di apprendimento. Per esempio. quando si tratta di rilevare processi zombie sotto Linux.
In questo tutorial creerò un processo zombi fittizio in Debian 10.
Creazione di un processo zombi fittizio in Debian 10
Apri il blocco note e incolla il seguente codice.
#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; }
Salva questo file come zombie.c . Il processo zombie creato con questo codice verrà eseguito per 120 secondi. È possibile regolare la durata del tempo (in secondi) nella funzione di sospensione.
Quindi, apri il terminale ed esegui il seguente comando per compilare il codice sopra.
cc zombie.c -o zombie
Dopo questo comando, dovrebbe essere stato creato un file obiettivo eseguibile nella directory corrente.
Esegui il file zombie:
./zombie
Quando esegui il seguente comando con grep, otterrai l'ID padre del processo zombie.
ps axo stat,ppid,pid,comm | grep -w defunct
Quindi è così che crei un processo zombi fittizio in Debian 10. Spero che tu non abbia difficoltà a seguire questo tutorial.