mkdir -p $GANRECDIR3
}
+monitor_ganesha_nfsd ()
+{
+ create_ganesha_recdirs
+ service_name=${service_name}_process
+
+ PIDFILE="/var/run/ganesha.pid"
+ CUR_STATE=`get_cluster_fs_state`
+ GANESHA="/usr/bin/$CTDB_CLUSTER_FILESYSTEM_TYPE.ganesha.nfsd"
+ if { read PID < $PIDFILE && \
+ grep "$GANESHA" "/proc/$PID/cmdline" ; } >/dev/null 2>&1 ; then
+ ctdb_counter_init "$service_name"
+ else
+ if [ $CUR_STATE = "active" ]; then
+ echo "Trying fast restart of NFS service"
+ startstop_ganesha restart
+ ctdb_counter_incr "$service_name"
+ ctdb_check_counter "error" "-ge" "6" "$service_name"
+ fi
+ fi
+
+ service_name="nfs-ganesha-$CTDB_CLUSTER_FILESYSTEM_TYPE"_service
+ # check that NFS is posting forward progress
+ if [ $CUR_STATE = "active" -a "$CTDB_NFS_SKIP_KNFSD_ALIVE_CHECK" != "yes" ] ; then
+ MAXREDS=2
+ MAXSTALL=120
+ RESTART=0
+
+ NUMREDS=`ls $GANRECDIR3 | grep "red" | wc -l`
+ LASTONE=`ls -t $GANRECDIR3 | sed 's/_/ /' | awk 'NR > 1 {next} {printf $1} '`
+ # Beware of startup
+ if [ -z $LASTONE ] ; then
+ LASTONE=`date +"%s"`
+ fi
+ TNOW=$(date +"%s")
+ TSTALL=$(($TNOW - $LASTONE))
+ if [ $NUMREDS -ge $MAXREDS ] ; then
+ echo restarting because of $NUMREDS red conditions
+ RESTART=1
+ ctdb_counter_incr "$service_name"
+ ctdb_check_counter "error" "-ge" "6" "$service_name"
+ fi
+ if [ $TSTALL -ge $MAXSTALL ] ; then
+ echo restarting because of $TSTALL second stall
+ RESTART=1
+ ctdb_counter_incr "$service_name"
+ ctdb_check_counter "error" "-ge" "6" "$service_name"
+ fi
+ if [ $RESTART -gt 0 ] ; then
+ startstop_ganesha restart
+ else
+ ctdb_counter_init "$service_name"
+ fi
+ fi
+}
+
+############################################################
+
case "$1" in
init)
# read statd from persistent database
monitor)
update_tickles 2049
- create_ganesha_recdirs
- service_name=${service_name}_process
+
# check that statd responds to rpc requests
# if statd is not running we try to restart it
# we only do this IF we have a rpc.statd command.
-eq 4 "verbose restart" \
-eq 2 "restart:bs"
- PIDFILE="/var/run/ganesha.pid"
- CUR_STATE=`get_cluster_fs_state`
- GANESHA="/usr/bin/$CTDB_CLUSTER_FILESYSTEM_TYPE.ganesha.nfsd"
- if { read PID < $PIDFILE && \
- grep "$GANESHA" "/proc/$PID/cmdline" ; } >/dev/null 2>&1 ; then
- ctdb_counter_init "$service_name"
- else
- if [ $CUR_STATE = "active" ]; then
- echo "Trying fast restart of NFS service"
- startstop_ganesha restart
- ctdb_counter_incr "$service_name"
- ctdb_check_counter "error" "-ge" "6" "$service_name"
- fi
- fi
-
- service_name="nfs-ganesha-$CTDB_CLUSTER_FILESYSTEM_TYPE"_service
- # check that NFS is posting forward progress
- if [ $CUR_STATE = "active" -a "$CTDB_NFS_SKIP_KNFSD_ALIVE_CHECK" != "yes" ] ; then
- MAXREDS=2
- MAXSTALL=120
- RESTART=0
-
- NUMREDS=`ls $GANRECDIR3 | grep "red" | wc -l`
- LASTONE=`ls -t $GANRECDIR3 | sed 's/_/ /' | awk 'NR > 1 {next} {printf $1} '`
- # Beware of startup
- if [ -z $LASTONE ] ; then
- LASTONE=`date +"%s"`
- fi
- TNOW=$(date +"%s")
- TSTALL=$(($TNOW - $LASTONE))
- if [ $NUMREDS -ge $MAXREDS ] ; then
- echo restarting because of $NUMREDS red conditions
- RESTART=1
- ctdb_counter_incr "$service_name"
- ctdb_check_counter "error" "-ge" "6" "$service_name"
- fi
- if [ $TSTALL -ge $MAXSTALL ] ; then
- echo restarting because of $TSTALL second stall
- RESTART=1
- ctdb_counter_incr "$service_name"
- ctdb_check_counter "error" "-ge" "6" "$service_name"
- fi
- if [ $RESTART -gt 0 ] ; then
- startstop_ganesha restart
- else
- ctdb_counter_init "$service_name"
- fi
- fi
-
+ monitor_ganesha_nfsd
# rquotad is sometimes not started correctly on RHEL5
# not a critical service so we dont flag the node as unhealthy