#!/bin/sh # script to check accessibility to the reclock file on a node [ -n "$CTDB_BASE" ] || \ CTDB_BASE=$(d=$(dirname "$0") ; cd -P "$d" ; dirname "$PWD") . "${CTDB_BASE}/functions" loadconfig # If CTDB_RECOVERY_LOCK specifies a helper then exit because this # script can't do anything useful. case "$CTDB_RECOVERY_LOCK" in !*) exit 0 ;; esac case "$1" in init) ctdb_counter_init if [ -n "$CTDB_RECOVERY_LOCK" ] ; then d=$(dirname "$CTDB_RECOVERY_LOCK") mkdir -vp "$d" fi ;; monitor) # Early exit if not using a reclock file [ -n "$CTDB_RECOVERY_LOCK" ] || exit 0 # Try to stat the reclock file as a background process so that # we don't block in case the cluster filesystem is unavailable ( if stat "$CTDB_RECOVERY_LOCK" ; then # We could stat the file, reset the counter ctdb_counter_init fi ) >/dev/null 2>&1 & ctdb_counter_incr if ! ctdb_check_counter "quiet" -ge 200 ; then echo "Reclock file \"$CTDB_RECOVERY_LOCK\" can not be accessed. Shutting down." df sleep 1 $CTDB shutdown fi ctdb_check_counter "error" -gt 3 ;; esac exit 0