http://www.perlmonks.org?node_id=737792


in reply to Re : A perl daemon
in thread A perl daemon

For handling signals, have a look at perlipc, especially the section entitled Handling the SIGHUP Signal in Daemons.

You probably want something like this (untested):

sub reload_cron { my $cron = shift; my $file = shift; $cron->clean_timetable; $cron->load_crontab($file); } { local $SIG{USR1} = sub { reload_cron($cron,$file) }; $cron->run; }
Then to signal the cron daemon, you need it's PID, and you can do:
kill $pid,10; # SIGUSR1

Hope this helps>

Replies are listed 'Best First'.
Re^3: A perl daemon
by trm (Novice) on Jan 21, 2009 at 18:26 UTC
    Thank you again for the information. I'll take a look at the module. I think the explanation is a bit beyond my grasp, but hopefully with the module docs that will clear up my confusion.

    I did try the nofork alternative, which I thought would be appropriate as I am using a governed queue with my application, and a fork could potentially effect it. However, it seems that if I have multiple schedules at the same time, only one schedule (somewhat random choice) will execute. I imagined that one would execute, then the next would execute, followed by however many are waiting to process. Any experience with the nofork mode that you might shed some light on?