Witam, mam za zadanie stworzyć prosty program w C , który stworzy proces zombie przy użyciu fork, a potem odbierze status procesu funkcją wait, tak, że dziecko nie będzie już w stanie zombie, ale po prostu zakonczy działanie ( rodzic odbierze sygnał funkcją wait ) poniżej zamieszczam skrypt znaleziony, który edytowałem ale to nie działa jak powinno :

 # include <stdio.h>
int main()
{    
    int pid;
    pid=getpid();
    
    printf("Current Process ID is : %d\n",pid);

    printf("[ Forking Child Process ... ] \n");    
    pid=fork(); /* This will Create Child Process and
               Returns Child's PID */

sleep(10);
if(pid < 0)
    {
        /* Process Creation Failed ... */

        exit(1);
    }
    else if(pid==0) 
    {
        /* Child Process */

        printf("Child Process Started ...\n");
        printf("Child Process Completed ...\n");
         
         waitpid(pid);
         printf("Odebrałem status rodzica");

    }
    else 
    {
        /* Parent Process */

    
        printf("Parent Process Running ... \n");
        printf("I am In Zombie State ...\n");
                  
        sleep(10);
        

        }
      

sleep(10);
    return 0;
}

W czasie działania sparwdzam w konsoli listę procesów ps -ef :
michal 2878 2490 0 22:48 pts/1 0000 ./a.out
michal 2879 2878 0 22:48 pts/1 0000 ./a.out

Czyli nie ma żadnego zombie przez cały czas działania tego programu. Jak to poprawić ?