http://qs321.pair.com?node_id=11111530


in reply to Signal to a sleeping Perl program

Does this need to remain resident and sleeping, or could it just be a cron that kicks off at 15 minute intervals? On Windows you could hand it to the task scheduler.

This still has the issue of how to stop it running; it's inconvenient to always be manipulating crontabs or task scheduler entities. But if the script started out like this:

__PACKAGE__->run(@ARGV) if -e '/path/to/run-me.flag' && ! caller; sub run { # ... the work goes here... }

...you would prevent future runs from doing anything. This doesn't address an stopping an in-progress run, but I think you are probably trying to prevent the script from waking up again. With this approach you just touch a file into existence if you want the script to proceed when the cron picks it up again. If the file has been removed the script won't proceed. You wouldn't want to leave an impotent cron laying around forever but if it's just a matter of needing to prevent it running for a few hours or days once in awhile, this seems like a reasonable solution.


Dave