in reply to Practical, efficient uses for fork()
use POSIX qw( setsid ctime ); if ( $DAEMON ) { my $log = "/var/log/$0.log"; chdir '/' or die "Can't chdir to /: $!"; open STDIN, '/dev/null' or die "Can't read /dev/null: $!"; open STDOUT, ">>$log" or die "Can't write to $log: $!"; { defined(my $pid = fork) or die "Can't fork: $!"; exit if $pid; # kill the parent to detach } setsid or die "Can't start a new session: $!"; open STDERR, '>&STDOUT' or die "Can't dup stdout: $!"; } print "Started $0 at ".ctime(time);
|
|---|