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>
