summaryrefslogtreecommitdiff
path: root/system/corosync/rc.corosync.new
diff options
context:
space:
mode:
authorZordrak <slackbuilds@tpa.me.uk>2010-04-18 01:04:41 -0400
committerDavid Somero <xgizzmo@slackbuilds.org>2010-05-15 10:38:20 +0200
commit8e699975b529cbd9757bf9f2eaae58046cd988a1 (patch)
tree38f1d0b6543448973259e8afc19b334e32e57c97 /system/corosync/rc.corosync.new
parent947cf099946d354113b4837c08abcc167bc8a369 (diff)
downloadslackbuilds-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.new145
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