Re: [autofs] automount does not close file descriptors at start

From: Valdis . Kletnieks
Date: Mon Feb 21 2005 - 00:29:54 EST


On Mon, 21 Feb 2005 12:57:22 +0800, Ian Kent said:

> This is the first time I've heard this and the first time I wrote a Unix
> daemon was fifteen years ago.
>
> As far as I'm concerned redirecting stdin, stdout and stderr to the null
> device, then closing it and setting the process to a be the group leader
> (as autofs does) should be all that's needed to daemonize a process.
>
> So are we saying that we don't trust the kernel to reliably duplicate the
> state of file handles when we fork?

No, you have it 180 degrees off. ;)

We *do* trust the kernel to reliably duplicate the state of file handles.
So if we're about to do the whole double-fork thing and all that, we want to
loop around and close all the file descriptors we don't want leaking to
the double-forked daemon. Yes, we do something reasonable with fd 0,1,2 -
but we probably also want to do something with that unclosed fd 3 that's still
open on /etc/mydaemon.cf, and any other file descriptors we've left dangling
in the breeze after initialization.

And yes, this sort of error happens in Real Live - I need to go and figure out
why the /sbin/lvm.static on my initrd is throwing 'File descriptor 3 left open'
messages...

Attachment: pgp00000.pgp
Description: PGP signature