if (fork == 0) { # create a subprocess local $SIG{HUP} = sub {}; # ignore SIGHUP (untested) close STDIN; # daemonize close STDOUT; open STDOUT,">/dev/null" || die $!; close STDERR; open STDERR,">/dev/null" || die $!; # do anything open(MAIL, "|/usr/sbin/sendmail -t"); ## Mail Header print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n\n"; ## Mail Body print MAIL "write your mail body text here\n"; close(MAIL); exit(0); }