Revision 1db0b7cf doc/examples/hooks/ethers
b/doc/examples/hooks/ethers | ||
---|---|---|
36 | 36 |
TARGET_BRIDGE="br0" |
37 | 37 |
DAEMON_PID_FILE="/var/run/dnsmasq.pid" |
38 | 38 |
LOCKFILE="/var/lock/ganeti_ethers.lock" |
39 |
LOCKTIMEOUT=10 |
|
40 |
LOCKSLEEP=2 |
|
39 | 41 |
|
40 | 42 |
hooks_path=$GANETI_HOOKS_PATH |
41 | 43 |
[ -n "$hooks_path" ] || exit 1 |
... | ... | |
44 | 46 |
nic_count=$GANETI_INSTANCE_NIC_COUNT |
45 | 47 |
|
46 | 48 |
acquire_lockfile() { |
47 |
if ! ( set -o noclobber; echo "$$" > $LOCKFILE) 2> /dev/null; then |
|
48 |
logger -s "Cannot acquire lockfile for ethers update" |
|
49 |
exit 1 |
|
50 |
fi |
|
49 |
NOW=$(date +%s) |
|
50 |
TIMEOUT=$(($NOW + $LOCKTIMEOUT)) |
|
51 |
while ! ( set -o noclobber; echo "$$" > $LOCKFILE) 2> /dev/null ; do |
|
52 |
NOW=$(date +%s) |
|
53 |
if [ $NOW -ge $TIMEOUT ]; then |
|
54 |
echo "Cannot acquire lockfile for ethers update, giving up" |
|
55 |
exit 1 |
|
56 |
fi |
|
57 |
echo "Cannot acquire lockfile for ethers update, waiting" |
|
58 |
sleep $LOCKSLEEP |
|
59 |
done |
|
51 | 60 |
trap "rm -f $LOCKFILE" EXIT |
52 | 61 |
} |
53 | 62 |
|
Also available in: Unified diff