mirror of
https://github.com/limosek/zaf.git
synced 2024-11-25 03:49:06 +01:00
38 lines
662 B
Plaintext
38 lines
662 B
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
. /etc/zaf.conf
|
||
|
|
||
|
. ${ZAF_LIB_DIR}/zaf.lib.sh
|
||
|
|
||
|
help() {
|
||
|
echo "$0 key cmd"
|
||
|
exit 2
|
||
|
}
|
||
|
|
||
|
lkey="$1"
|
||
|
[ -z "$lkey" ] && help
|
||
|
shift
|
||
|
|
||
|
[ -z "${ZAF_LOCK_SECONDS}" ] && seconds=5
|
||
|
[ -z "${ZAF_LOCK_FORCE}" ] && force=1
|
||
|
|
||
|
lockfile="${ZAF_TMP_DIR}/zaflock_${lkey}"
|
||
|
i=0
|
||
|
while [ -f "$lockfile" ] && [ $i -lt $seconds ]; do
|
||
|
sleep 1
|
||
|
i=$(expr $i + 1)
|
||
|
done
|
||
|
if [ -f "$lockfile" ] && [ -n "$force" ]; then
|
||
|
logger -s -t "zlock" -p daemon.warn "Releasing $lockfile!"
|
||
|
rm -f "$lockfile"
|
||
|
fi
|
||
|
if [ -f "$lockfile" ] && [ -z "$force" ]; then
|
||
|
logger -s -t "zlock" -p daemon.err "Could not get lock for $lockfile!"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
touch "$lockfile"
|
||
|
[ -n "$*" ] && $@
|
||
|
rm -f "$lockfile"
|
||
|
|