config: let 13.per_ip_routing use a flock for generate_auto_link_local()
[metze/ctdb/wip.git] / config / ctdb.init
index 96ffb1ece651069a2df0dc4da191be97614db2ff..7dfdd26639c70cb4fe29a30cf5a28a05cb630d70 100755 (executable)
@@ -65,7 +65,7 @@ build_ctdb_options () {
        # then return
        [ -z "$2" -o \( -n "$3" -a "$3" != "$2" \) ] && return
 
-       val="$2"
+       val="'$2'"
        case "$1" in
            --*) sep="=" ;;
            -*)  sep=" " ;;
@@ -171,14 +171,14 @@ start() {
 
     ctdb ping >/dev/null 2>&1 && {
        echo $"CTDB is already running"
-       return 1
+       return 0
     }
 
     build_ctdb_options
 
     check_persistent_databases || return $?
 
-    if [ yes == "$CTDB_SUPPRESS_COREFILE" ]; then
+    if [ "$CTDB_SUPPRESS_COREFILE" = "yes" ]; then
        ulimit -c 0
     else
        ulimit -c unlimited
@@ -186,25 +186,26 @@ start() {
 
     case $init_style in
        valgrind)
-           valgrind -q --log-file=/var/log/ctdb_valgrind \
-               $ctdbd --valgrinding $CTDB_OPTIONS
+           eval valgrind -q --log-file=/var/log/ctdb_valgrind \
+               $ctdbd --valgrinding "$CTDB_OPTIONS"
            RETVAL=$?
            echo
            ;;
        suse)
-           startproc $ctdbd $CTDB_OPTIONS
+           eval startproc $ctdbd "$CTDB_OPTIONS"
            rc_status -v
            RETVAL=$?
            ;;
        redhat)
-           daemon $ctdbd $CTDB_OPTIONS
+           eval $ctdbd "$CTDB_OPTIONS"
            RETVAL=$?
+           [ $RETVAL -eq 0 ] && success || failure
            echo
            [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ctdb || RETVAL=1
            ;;
        debian)
-           start-stop-daemon --start --quiet --background \
-               --exec $ctdbd -- $CTDB_OPTIONS
+           eval start-stop-daemon --start --quiet --background \
+               --exec $ctdbd -- "$CTDB_OPTIONS"
            RETVAL=$?
            ;;
     esac
@@ -214,7 +215,7 @@ start() {
     set_ctdb_variables
 
     return $RETVAL
-}      
+}
 
 stop() {
     echo -n $"Shutting down ctdbd service: "
@@ -261,7 +262,7 @@ stop() {
 restart() {
     stop
     start
-}      
+}
 
 status() {
     echo -n $"Checking for ctdbd service: "
@@ -274,7 +275,13 @@ status() {
                rc_status -v
                ;;
            redhat)
-               echo ""
+               if [ -f /var/lock/subsys/ctdb ]; then
+                       echo $"ctdb dead but subsys locked"
+                       RETVAL=2
+               else
+                       echo $"ctdb is stopped"
+                       RETVAL=3
+               fi
                ;;
        esac
        return $RETVAL
@@ -291,13 +298,13 @@ case "$1" in
     stop)
        stop
        ;;
-    restart|reload)
+    restart|reload|force-reload)
        restart
        ;;
     status)
        status
        ;;
-    condrestart)
+    condrestart|try-restart)
        ctdb status > /dev/null && restart || :
        ;;
     cron)
@@ -305,7 +312,7 @@ case "$1" in
        ctdb status > /dev/null || restart
        ;;
     *)
-       echo $"Usage: $0 {start|stop|restart|status|cron|condrestart}"
+       echo $"Usage: $0 {start|stop|restart|reload|force-reload|status|cron|condrestart|try-restart}"
        exit 1
 esac