sub init_mailer_daemon { my $self = shift; my $name = $self->name; print "Starting: '$name'\n"; *CORE::GLOBAL::warn = \&warn_to_log; $SIG{__DIE__} = \&die_to_log; $SIG{__WARN__} = \&warn_to_log; eval { chdir '/' or die $!; open STDIN, '/dev/null' or die $!; open(STDOUT, '>>' . $self->logfile); open(STDERR, '+>&STDOUT'); logmsg('Starting Listmanager'); POSIX::setsid or die $!; logmsg('Successful'); }; if ($@) { die "Couldn't start child '$name': $@"; } local $SIG{CHLD} = 'IGNORE'; &queue; }