Paralleles Ausführen eines Shell-Skriptes verhindern
Soll verhindert werden, dass ein Shell-Skript mehrere Male parallel gestartet wird, kann dazu shlock verwendet werden. Im FreeBSD-Portbaum findet man shlock unter sysutlis/shlock:
# cd /usr/ports/sysutils/shlock && make install clean
Benutzer von pkgng können shlock wie folgt installieren:
# pkg install shlock
Nun kann mit shlock ein Shell-Skript mit einer Lockdatei geschützt werden:
# vi lock.sh
LOCK=/var/run/my.lock
trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15
if shlock -p $$ -f ${LOCK} ; then
        sleep 60
else
        echo "Locked by `cat ${LOCK}`"
fi
Versucht man nun das Shell-Skript zweimal zu starten, wird dies von shlock verhindert:
# sh lock.sh & [1] 84001 # sh lock.sh Locked by 84001
Mehr Informationen zu shlock findet man in der Manpage shlock(1).
Comments
No new comments allowed (anymore) on this post.




