[RndTbl] Potentially long cron jobs

Trevor Cordes trevor at tecnopolis.ca
Thu Apr 1 17:46:11 CDT 2010


On 2010-04-01 Kevin McGregor wrote:
> I want to run something via cron which will take anywhere from less
> than a minute to a day or so (possibly). Most of the time it will be
> well under an hour, and I'd like it to run hourly, except if it's
> still running, in which case nothing more need be done.

To not worry about races, and still keep things simple:

lock=~/lockfile-whatever
lockfile -r 0 -l 86400 $lock >/dev/null 2>&1 || exit
do_work
rm -f $lock

see man lockfile

may not be terribly portable beyond linux(?)

Play with the -l option or omit it.  For your case you'd want to set it
to the absolute max secs it could possibly take your program to run.

Perl also has a ways to do locking.

Note: "Lockfile is NFS-resistant": I have no idea what they mean by
that, will it work or not?  Pretty nifty if they have it working on
NFSvX where X<4.


More information about the Roundtable mailing list