Przeglądaj źródła

Patch to provide generic init script that is generically useful for most
distributions or can be used as a starting point for making a distribution
custom init script.


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1475 fd59a12c-fef9-0310-b244-a6a79926bd2f

Steven Dake 18 lat temu
rodzic
commit
609141f521
1 zmienionych plików z 145 dodań i 0 usunięć
  1. 145 0
      init/generic

+ 145 - 0
init/generic

@@ -0,0 +1,145 @@
+#!/bin/sh
+#
+# openais       Start the openais cluster service
+#
+# Author:       Andrew Beekhof <abeekhof@suse.de>
+# License:      Revised BSD
+#
+# chkconfig: - 20 20
+# processname:  aisexec
+# description:  OpenAIS daemon
+#
+### BEGIN INIT INFO
+# Description: openais....
+#
+# Short-Description: openais cluster services.
+# Provides: openais
+# Required-Start: $network
+# Should-Start: $syslog
+# Required-Stop: $network
+# Default-Start: 3 5
+# Default-Stop: 0 6
+### END INIT INFO
+
+do_force=0
+prog="aisexec"
+lockfile="/var/lock/subsys/$prog"
+
+internal_status() {
+    killall -0 aisexec > /dev/null 2>&1
+    return $?
+}
+
+status() {
+    if 
+	! internal_status
+    then
+	echo "Stopped"
+	return 7
+    fi
+
+    echo "Running"
+    return 0
+}
+
+start() {
+    echo -n $"Starting OpenAIS daemon ($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 OpenAIS daemon ($prog): "
+
+    killall -QUIT aisexec
+
+    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 aisexec
+	    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