Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Feb 1998 12:22:45 -0800 (PST)
From:      Doug White <dwhite@gdi.uoregon.edu>
To:        vel@ns.kbsu.ru
Cc:        questions@FreeBSD.ORG
Subject:   Re: Zombie processes
Message-ID:  <Pine.BSF.3.96.980217121703.12338K-100000@gdi.uoregon.edu>
In-Reply-To: <199802171635.TAA01302@hub.kbsu.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 17 Feb 1998, Charlie wrote:

> I have a small trouble with my program under FreeBSD. I do fork() to
> create new process, and new process must do something and exit, but
> parent process must continue. The simplest program looks like this:
> 
> #include <stdio.h>
> #include <unistd.h>
> 
> main()
> {
>  if (!fork())
>   {
>    printf("This is child, exiting ...\n");
>    return;
>   }
>  while(1);
> }
> 
> The created child process must write message and exit, but it doesn't exit
> correctly. It hangs like "zombie" process until parent process exits.
> 
> Why it happens ? Is there any way to solve or walk around this problem ?

This is correct behavior for BSD programs.  It's often not desired but
correct in terms of the process model.  If you want to reap children, add
a signal handler for SIGCHLD to call wait().

Doug White                              | University of Oregon  
Internet:  dwhite@resnet.uoregon.edu    | Residence Networking Assistant
http://gladstone.uoregon.edu/~dwhite    | Computer Science Major



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.980217121703.12338K-100000>