Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Jun 2004 13:07:08 -0700
From:      Mike Hunter <mhunter@ack.Berkeley.EDU>
To:        Charles Swiger <cswiger@mac.com>
Cc:        current@freebsd.org
Subject:   Re: Problems with periodic scripts in jails [Cron <operator@sosai> /usr/libexec/save-entropy]
Message-ID:  <20040602200708.GA1847@ack.Berkeley.EDU>
In-Reply-To: <9C375698-B4CD-11D8-9C6A-003065ABFD92@mac.com>
References:  <20040602134523.GA26835@genius.tao.org.uk> <20040602140148.GA27036@genius.tao.org.uk> <20040602140923.GA27070@genius.tao.org.uk> <20040603011806.E25331@gamplex.bde.org> <20040602161148.GA3067@dan.emsphone.com> <9C375698-B4CD-11D8-9C6A-003065ABFD92@mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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
finished.

> 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 :)

Mike



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040602200708.GA1847>