use POSIX; sub daemon { if($pid = fork) { # Parent exit 0; } elsif (defined $pid) { # Child setsid(); # detach session do_stuff(); # do some usefull stuff } else { die "Cannot fork: $!\n"; } }