]> git.pld-linux.org Git - packages/heartbeat.git/blob - heartbeat.init
- TODO item added
[packages/heartbeat.git] / heartbeat.init
1 #!/bin/sh
2 #
3 # heartbeat     Starts heartbeat.
4 #
5 # chkconfig:    345 40 60
6 # description:  Heartbeat.
7
8 HA_DIR=/etc/ha.d
9 CONFIG=$HA_DIR/ha.cf
10 . $HA_DIR/shellfuncs
11
12 # Source function library
13 . /etc/rc.d/init.d/functions
14
15 # Get service config
16 [ -f /etc/sysconfig/heartbeat ] && . /etc/sysconfig/heartbeat
17
18 if [ ! -f $CONFIG ]; then
19         nls "Heartbeat not configured: $CONFIG not found."
20         exit 1
21 fi
22
23 CrmEnabled() {
24         case `ha_parameter crm | tr '[A-Z]' '[a-z]'` in
25                 y|yes|enable|on|true|1|manual)
26                         true;;
27                 *)
28                         false;;
29         esac
30 }
31
32 StandbyHA() {
33   auto_failback=`ha_parameter auto_failback | tr 'A-Z' 'a-z'`
34   nice_failback=`ha_parameter nice_failback | tr 'A-Z' 'a-z'`
35
36   case "$auto_failback" in
37     *legacy*)   echo "auto_failback is set to legacy.  Cannot enter standby."
38                 exit 1;;
39   esac
40   case "$nice_failback" in
41     *off*)      echo "nice_failback is disabled.  Cannot enter standby."
42                 exit 1;;
43   esac
44   case "${auto_failback}${nice_failback}" in
45     "") echo "auto_failback defaulted to legacy.  Cannot enter standby."
46                 exit 1;;
47   esac
48
49   echo "auto_failback: $auto_failback"
50   if
51     $HA_BIN/heartbeat -s >/dev/null 2>&1
52   then
53     show "Attempting to enter standby mode"; busy
54     if
55       $HA_BIN/hb_standby
56     then
57       # It's impossible to tell how long this will take.
58       started
59     else
60       fail
61     fi
62   else
63     msg_not_running heartbeat
64   fi
65 }
66
67 RunStartStop() {
68 # Run pre-startup script if it exists
69 if [ -f $HA_DIR/resource.d/startstop ]; then
70         $HA_DIR/resource.d/startstop "$@"
71 fi
72 }
73
74 start() {
75         $HA_BIN/ha_logd -s 2>&1 >/dev/null
76         if [ $? -ne 0 ]; then
77                 msg_starting ha_logd
78                 daemon --pidfile /var/run/logd.pid $HA_BIN/ha_logd -d
79         else
80                 msg_already_running "ha_logd"
81         fi
82         if $HA_BIN/heartbeat -s 2>&1 >/dev/null; then 
83                 msg_already_running "Heartbeat"
84         else
85                 RunStartStop pre-start
86                 if ! CrmEnabled; then
87                         $HA_NOARCHBIN/ResourceManager verifyallidle
88                 fi
89                 for d in /var/run/heartbeat/{crm,ccm}; do
90                         if ! [ -d $d ]; then
91                                 mkdir -p $d
92                                 chown hacluster:haclient $d
93                                 chmod 750 $d
94                         fi
95                 done
96                 msg_starting "Heartbeat"
97                 daemon --pidfile /var/run/heartbeat.pid $HA_BIN/heartbeat 2>&1
98                 touch /var/lock/subsys/heartbeat
99                 RETVAL=$?
100                 RunStartStop post-start $RETVAL
101         fi
102 }
103
104 stop() {
105         RunStartStop "pre-stop"
106         $HA_BIN/heartbeat -s 2>&1 >/dev/null
107         if [ $? -eq 0 ]; then
108                 msg_stopping "Heartbeat"
109                 busy
110                 $HA_BIN/heartbeat -k
111                 RETVAL=$?
112                 [ $RETVAL -eq 0 ] && ok || fail
113         else
114                 msg_not_running heartbeat
115         fi
116         RunStartStop post-stop $RETVAL
117         $HA_BIN/ha_logd -s 2>&1 >/dev/null
118         if [ $? -eq 0 ]; then
119                 msg_stopping ha_logd
120                 busy
121                 $HA_BIN/ha_logd -k
122                 RETVAL=$?
123                 [ $RETVAL -eq 0 ] && ok || fail
124         else
125                 msg_not_running ha_logd
126         fi
127         rm -f /var/lock/subsys/heartbeat /var/run/heartbeat.pid /var/run/logd.pid 2>/dev/null
128 }
129
130 RETVAL=0
131 case "$1" in
132   start)
133         start
134         ;;
135   standby)
136         StandbyHA
137         RETVAL=$?
138         ;;
139   status)
140         $HA_BIN/heartbeat -s
141         RETVAL=$?
142         ;;
143   stop)
144         stop
145         ;;
146   restart)
147         stop
148         start
149         ;;
150   force-reload|reload)
151         msg_reloading "Heartbeat"
152         busy
153         $HA_BIN/heartbeat -r
154         RETVAL=$?
155         [ $RETVAL -eq 0 ] && ok || fail
156         ;;
157   *)
158         msg_usage "$0 {start|stop|status|standby|restart|reload|force-reload}"
159         exit 3
160         ;;
161 esac
162
163 exit $RETVAL
This page took 0.06955 seconds and 3 git commands to generate.