Re: disowning a process

From: Steven Rostedt
Date: Fri May 27 2005 - 14:30:49 EST


On Fri, 2005-05-27 at 14:05 -0500, Davy Durham wrote:
> Davy Durham wrote:

> I added "waitpid(pid,NULL,0);" after the outer-most if.. which is where
> the grand parent cleans up the pid of the intermediate parent.

That's correct.

>
> However, now trying the daemon() function.. which seems to work the
> same way.. it definately leaves a pid around.. so I guess you really
> need to do a wait() in the parent after forking.. however you don't know
> exactly which pid to wait for so you might be reaping some other child
> you've previously spawned..

The daemon function is really just the inner fork and setsid. So with
using the daemon function it looks like this:

if ((pid = fork()) < 0) {
perror("fork");
} else if (!pid) {
if (daemon(0,0) < 0) {
exit(-1);
}
/* daemon code here */
exit(0);
}

waitpid(pid,NULL,0);

-- Steve


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/