> >But you don't need to call setsid() when you fork. Why looking for
> >complicated workaround when you can do it properly without any workaround.
> >Have you ever seen an example of fork that uses setsid?
>
> Yes, the following is taken straight out from the perlipc documentation:
> -----------------------------
> Complete Dissociation of Child from Parent
>
> In some cases (starting server processes, for instance) you'll want to
> completely dissociate the child process from the
> parent. This is often called daemonization. A well behaved daemon will also
> chdir() to the root directory (so it
> doesn't prevent unmounting the filesystem containing the directory from
> which it was launched) and redirect its standard
> file descriptors from and to /dev/null (so that random output doesn't wind
> up on the user's terminal).
>
> use POSIX 'setsid';
>
> sub daemonize {
> chdir '/' or die "Can't chdir to /: $!";
> open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
> open STDOUT, '>/dev/null'
> or die "Can't write to /dev/null: $!";
> defined(my $pid = fork) or die "Can't fork: $!";
> exit if $pid;
> setsid or die "Can't start a new session: $!";
> open STDERR, '>&STDOUT' or die "Can't dup stdout: $!";
> }
>
> The fork() has to come before the setsid() to ensure that you aren't a
> process group leader (the setsid() will fail if you are). If your system
> doesn't have the setsid() function, open /dev/tty and use the TIOCNOTTY
> ioctl() on it instead. See tty(4) for details.
> -----------------
>
> Am I missing something?
You don't miss anything, the above code is an example of daemonization.
You don't really need to call setsid() for a *forked* process that was
started to execute something and quit.
It's different if you call system() to spawn the process. But since it's a
child of the parent httpd it's not a leader anyway so you don't need the
extra fork I suppose. Am I correct?
In fact it's good that you've posted this doc snippet, I'll use it as it's
more complete and cleaner. Thanks.
_____________________________________________________________________
Stas Bekman JAm_pH -- Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide http://perl.apache.org/guide
mailto:[EMAIL PROTECTED] http://apachetoday.com http://logilune.com/
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/