BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanneKontakt

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 (1)  Permalink

Comments

crest @ 08.02.2013 15:59 CET
Was bietet shlock mehr als lockf(1)?

add a comment

The Trackback URL to this post is:
http://www.chruetertee.ch/blog/plugin=trackback(2056).xml
Trackbacks are moderated.

This blog is gravatar enabled.
Your email adress will never be published.
Comment spam will be deleted!

Name*
E-Mail
For Spammers Only
URL
Comment*
Notify me via E-Mail when new comments are made to this entry
Remember me (needs cookies)