Simple lock#!/bin/bash myLockDir="/var/lock/`basename $0 .sh`" myPIDfile="$myLockDir/PID" if mkdir $myLockDir 2>/dev/null then echo "$$" > $myPIDfile else if ! kill -0 `cat $myPIDfile` &>/dev/null then echo "cleaning dead pid" rm -rf $myLockDir exec $0 "$@" else echo "$0 is already running with lock dir at $myLockDir" >&2 exit 1 fi fi #clean up at end rm -rf $myLockDir