sub daemonize { my $childpid; if(($childpid = fork()) < 0) { die("can't fork: $!"); } elsif($childpid > 0) { exit(0); # parent - exits } (setpgrp() != -1) || die("Can't change process group: $!"); $SIG{HUP} = 'IGNORE'; if(($childpid = fork()) < 0) { die("can't fork: $!"); } elsif($childpid > 0) { exit(0); # parent - exits } chdir("/"); umask(0); }