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.