#!/bin/sh HA_DIR=/etc/ha.d CONFIG=$HA_DIR/ha.cf . $HA_DIR/shellfuncs # Source function library . /etc/rc.d/init.d/functions # Get service config [ -f /etc/sysconfig/heartbeat ] && . /etc/sysconfig/heartbeat if [ ! -f $CONFIG ]; then nls "Heartbeat not configured: $CONFIG not found." exit 1 fi StandbyHA() { auto_failback=`ha_parameter auto_failback | tr 'A-Z' 'a-z'` nice_failback=`ha_parameter nice_failback | tr 'A-Z' 'a-z'` case "$auto_failback" in *legacy*) echo "auto_failback is set to legacy. Cannot enter standby." exit 1;; esac case "$nice_failback" in *off*) echo "nice_failback is disabled. Cannot enter standby." exit 1;; esac case "${auto_failback}${nice_failback}" in "") echo "auto_failback defaulted to legacy. Cannot enter standby." exit 1;; esac echo "auto_failback: $auto_failback" if StatusHA >/dev/null 2>&1 then EchoNoNl "Attempting to enter standby mode" if $HA_BIN/hb_standby then # It's impossible to tell how long this will take. echo else echo_failure $? fi else Echo "Heartbeat is not currently running." exit 1 fi } RunStartStop() { # Run pre-startup script if it exists if [ -f $HA_DIR/resource.d/startstop ]; then $HA_DIR/resource.d/startstop "$@" fi } RETVAL=0 case "$1" in start) $HA_BIN/ha_logd -s 2>&1 >/dev/null if [ $? -ne 0 ]; then msg_starting ha_logd daemon $HA_BIN/ha_logd -d else msg_already_running "ha_logd" fi #RunStartStop pre-start msg_starting "High-Availability" daemon $HA_BIN/ResourceManager verifyallidle msg_starting "Heartbeat" daemon $HA_BIN/heartbeat 2>&1 RETVAL=$? #RunStartStop post-start $RETVAL ;; standby) StandbyHA RETVAL=$? ;; status) status $HA_BIN/heartbeat -s RETVAL=$? ;; stop) #RunStartStop "pre-stop" $HA_BIN/heartbeat -s 2>&1 >/dev/null if [ $? -eq 0 ]; then msg_stopping "Heartbeat" daemon $HA_BIN/heartbeat -k else msg_not_running heartbeat fi #RunStartStop post-stop $RETVAL $HA_BIN/ha_logd -s 2>&1 >/dev/null if [ $? -eq 0 ]; then msg_stopping ha_logd daemon $HA_BIN/ha_logd -k else msg_not_running ha_logd fi ;; restart) $0 stop $0 start ;; force-reload|reload) msg_reloading "High-Availability" daemon $HA_BIN/heartbeat -r RETVAL=$? ;; *) msg_usage "$0 {start|stop|status|standby|restart|reload|force-reload}" exit 3 ;; esac exit $RETVAL