diff options
author | Zordrak <slackbuilds@tpa.me.uk> | 2010-04-18 01:04:41 -0400 |
---|---|---|
committer | David Somero <xgizzmo@slackbuilds.org> | 2010-05-15 10:38:20 +0200 |
commit | 8e699975b529cbd9757bf9f2eaae58046cd988a1 (patch) | |
tree | 38f1d0b6543448973259e8afc19b334e32e57c97 /system/corosync/rc.corosync.new | |
parent | 947cf099946d354113b4837c08abcc167bc8a369 (diff) | |
download | slackbuilds-8e699975b529cbd9757bf9f2eaae58046cd988a1.tar.gz |
system/corosync: Added (plug-in for 3rd party cluster services)
Diffstat (limited to 'system/corosync/rc.corosync.new')
-rw-r--r-- | system/corosync/rc.corosync.new | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/system/corosync/rc.corosync.new b/system/corosync/rc.corosync.new new file mode 100644 index 0000000000..f13be6b03a --- /dev/null +++ b/system/corosync/rc.corosync.new @@ -0,0 +1,145 @@ +#!/bin/sh +# +# corosync Start the Corosync Cluster Engine +# +# Author: Andrew Beekhof <abeekhof@suse.de> +# License: Revised BSD +# +# chkconfig: - 20 20 +# processname: corosync +# description: Corosync Cluster Engine +# +### BEGIN INIT INFO +# Description: corosync.... +# +# Short-Description: Corosync Cluster Engine. +# Provides: corosync +# Required-Start: $network +# Should-Start: $syslog +# Required-Stop: $network +# Default-Start: 3 5 +# Default-Stop: 0 6 +### END INIT INFO + +do_force=0 +prog="corosync" +lockfile="/var/lock/subsys/$prog" + +internal_status() { + killall -0 corosync > /dev/null 2>&1 + return $? +} + +status() { + if + ! internal_status + then + echo "Stopped" + return 7 + fi + + echo "Running" + return 0 +} + +start() { + echo -n $"Starting Corosync Cluster Engine ($prog): " + if + ! internal_status + then + echo -n "starting... " + $prog 2>&1 > /dev/null 2>&1 + echo -n "rc=$?: " + fi + + sleep 2 # give it time to fail... $? isn't definitive + + if + internal_status + then + echo "OK" + return 0 + fi + + echo "Failed" + return 1 +} + +do_force=0 +do_forever=1 + +stop() { + echo -n $"Stopping Corosync Cluster Engine ($prog): " + + killall -QUIT corosync + + if [ $do_forever = 0 ]; then + for i in 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20; do + if + internal_status + then + sleep 2 + echo -n "." + else + rm -f "$lockfile" + echo "OK" + return 0 + fi + done + + if [ $do_force = 1 ]; then + echo -n "Escalating... " + killall -KILL corosync + sleep 5 + + if + ! internal_status + then + rm -f "$lockfile" + echo "OK" + return 0 + fi + fi + + echo "Failed" + return 1 + fi + + while + internal_status + do + sleep 1 + echo -n "." + done + + rm -f "$lockfile" + echo "OK" + return 0 +} + +restart() { + stop + start +} + +case "$1" in + start|stop|restart) + $1 + ;; + force-stop) + do_force=1 + stop + ;; + reload|force-reload) + restart + ;; + condrestart|try-restart) + [ ! -f "$lockfile" ] || restart + ;; + status) + status $prog + ;; + *) + echo $"Usage: $0 {start|stop|restart|try-restart|condrestart|reload|force-reload|force-stop|status}" + exit 2 +esac |