[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Cron - any advanced options?



On Thursday, 23.04.2009 at 13:42 +0530, Kurian Thayil wrote:

> I have 3 cron jobs enabled and all are relating to RSYNC. Now, all of these
> scripts are run once in every 7 minutes all day. The problem occurs when the
> scripts doesn't finish to execute in 7 minutes. This will result in starting
> execution of the same script again and this will malfunction the setup.
> 
> Is there an option in CRON, which always check if CRON has started the
> process and is already running? Cron should execute the script only if the
> the process isn't running already. Any hints on this?

Don't make it cron's responsibility to check whether the script is
already running.  Make it the *scripts's* responsibility.

For example, the script should create a marker file (or similar) when it
runs, deleting the marker file upon completion.  The *first* thing the
script should do is check for the existence of the marker file and, if
it exists, then another instance of the script is already running; you
can then terminate the script at that point.

e.g. (partly bash, partly pseudo-code, completely untested)

MARKER=/home/username/tmp/marker.txt
if [ -e $MARKER ]; then
    echo Script already running
    exit
touch $MARKER
[...]
[... real script here ...]
[...]
rm $MARKER

Dave.

-- 
Dave Ewart
davee@ceu.ox.ac.uk
Computing Manager, Cancer Epidemiology Unit
University of Oxford / Cancer Research UK
PGP: CC70 1883 BD92 E665 B840 118B 6E94 2CFD 694D E370
Get key from http://www.ceu.ox.ac.uk/~davee/davee-ceu-ox-ac-uk.asc
N 51.7516, W 1.2152

Attachment: signature.asc
Description: Digital signature


Reply to: