Problems with periodic scripts in jails [Cron <operator@sosai> /usr/libexec/save-entropy]

Mike Hunter mhunter at ack.Berkeley.EDU
Wed Jun 2 20:07:12 GMT 2004

On Jun 02, "Charles Swiger" wrote:

> On Jun 2, 2004, at 12:11 PM, Dan Nelson wrote:
> >A nice addition to cron might be a way to tell it that certain jobs
> >should be single-instance.  I know about half of my cron jobs look
> >like:
> >
> >/usr/local/bin/lockfile -r 1 -l 3600 /tmp/runjob.LCK && ( runjob ; rm 
> >/tmp/runjob.LCK )
> >
> >and it'd be handy if cron would do this internally (no physical
> >lockfiles needed).  The least intrusive way would be to add a magic
> >variable similar to MAILTO; NO_OVERLAP=1 or something.  Anyone up for a
> >Junior Userland Hacker project? :)
> If a cron job (eg, a shell script) doesn't perform whatever locking it 
> needs for itself, what happens when someone runs the script by hand?

For stuff that I do, when you run the script by hand, you see when it's
done by returning to the prompt, so you're not likely to run it until it's

> What happens to cron's "internal locking" if one restarts cron?  Why 
> jump through hoops to avoid creating lockfiles if you're going to need 
> some persistent mechanism to track locks when/if cron terminates, 
> anyway?

I've restarted cron once due to a time zone error, other than that, cron
tends to restart when the machine is booted, and that's about it :)  Maybe
some day I'll be hardcore enough to set up systems that put cron at risk,
but I think for the average user it's not a huge concern.

> My suggestion would be to move the invocation of lockfile into the 
> runjob script itself, so that your crontab is smaller and less 
> cluttered, and your runjob scripts become smart enough to fend for 
> themselves.

That's a good suggestion.  I do think that cron itself strongly influences
the need for locking in some situations, and that it therefore might be 
appropriate to put functionality to deal with it in cron.  I drooled when
I read the initial suggestion :)


More information about the freebsd-current mailing list