sub daemonize {
logger('Entering Daemon mode');
chdir '/' or die "Can't chdir to /: $!";
umask 0;
open STDIN, '<', '/dev/null' or die "Can't read /dev/null: $!";
open STDOUT, '>', '/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '>', '/dev/null' or die "Can't write to /dev/null: $!";
my $pid = fork;
exit if $pid;
if (!defined $pid) { die "Couldn't fork: $!" }
# Here you may want to detach script output from console
# logger_del('console'); #(*)
setsid() or die "Can't start a new session: $!";
# logger('Now in Daemon mode'); #(*)
say 'Now in Daemon mode';
return
}
* 'logger()' is my own tool for convinient data output, you can simply replace it with 'say' or 'print'
logger('Entering Daemon mode');
chdir '/' or die "Can't chdir to /: $!";
umask 0;
open STDIN, '<', '/dev/null' or die "Can't read /dev/null: $!";
open STDOUT, '>', '/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '>', '/dev/null' or die "Can't write to /dev/null: $!";
my $pid = fork;
exit if $pid;
if (!defined $pid) { die "Couldn't fork: $!" }
# Here you may want to detach script output from console
# logger_del('console'); #(*)
setsid() or die "Can't start a new session: $!";
# logger('Now in Daemon mode'); #(*)
say 'Now in Daemon mode';
return
}