# -- prog.pl -- my $run = 1; $SIG{TERM} = sub { $run=0 }; while($run) { sleep 1; `touch /tmp/foo` } `rm -f /tmp/foo`; # -- daem.pl -- use Daemon::Control; exit Daemon::Control->new( name => 'foobar', program => '/tmp/prog.pl', pid_file => '/tmp/prog.pid', )->run; # -- app.pl -- use Daemon::Control; my $stat = Daemon::Control->new( name => 'foobar', program => '/tmp/prog.pl', pid_file => '/tmp/prog.pid', quiet => 1, )->do_status; print "Status: $stat\n";