]> git.proxmox.com Git - pve-sheepdog.git/commitdiff
fix init.d script
authorDietmar Maurer <dietmar@proxmox.com>
Tue, 10 Jul 2012 06:12:26 +0000 (08:12 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 10 Jul 2012 06:12:26 +0000 (08:12 +0200)
sheep does not create a pid file

debian/pve-sheepdog.sheepdog.default
debian/pve-sheepdog.sheepdog.init.d

index 5e849bd89a11c0f66d9ca4ed1eb1c0badd998b52..d17137f606d86eb83f19cd7ca33b7cde25faead1 100644 (file)
@@ -12,4 +12,4 @@ START=yes
 # Additional options that are passed to the Daemon.
 DAEMON_OPTS=""
 
-SHEEPDOG_PATH="/var/lib/vz/sheepdog"
+#SHEEPDOG_PATH="/var/lib/sheepdog"
index 64b5ea53e24ddf798c92f0b381f99fe33a4c210f..693ab2380682737d103ddab925969e611b2edde1 100644 (file)
@@ -23,6 +23,9 @@ SCRIPTNAME=/etc/init.d/$NAME
 # Exit if the package is not installed
 [ -x $DAEMON ] || exit 0
 
+# Defaults
+SHEEPDOG_PATH="/var/lib/sheepdog"
+
 # Read configuration variable file if it is present
 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
 
@@ -30,19 +33,25 @@ if [ "$START" != "yes" ]; then
         exit 0
 fi
 
-# Load the VERBOSE setting and other rcS variables
-. /lib/init/vars.sh
-
-# Define LSB log_* functions.
-# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
 . /lib/lsb/init-functions
 
+status()
+{
+       pid=$(pidof $1 2>/dev/null)
+       rtrn=$?
+       if [ $rtrn -ne 0 ]; then
+               echo "$1 is stopped"
+       else
+               echo "$1 (pid $pid) is running..."
+       fi
+       return $rtrn
+}
+
 #
 # Function that starts the daemon/service
 #
 do_start()
 {
-
         mkdir -p /var/run
 
         mkdir -p $SHEEPDOG_PATH
@@ -51,7 +60,9 @@ do_start()
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
-       start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null || return 1
+
+       status "$DAEMON" >/dev/null && return 1
+
        start-stop-daemon --start --quiet --exec $DAEMON -- $DAEMON_ARGS $SHEEPDOG_PATH || return 2
 }
 
@@ -65,60 +76,58 @@ do_stop()
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
-       ! start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null && return 1
 
-       start-stop-daemon --stop --quiet --retry=TERM/20/KILL/5 --exec $DAEMON
+        status "$DAEMON" >/dev/null || return 1
+
+       start-stop-daemon --stop --retry=TERM/20/KILL/5 --exec $DAEMON
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
 
        # Many daemons don't delete their pidfiles when they exit.
        # rm -f $PIDFILE
+
        return "$RETVAL"
 }
 
 case "$1" in
-  start)
-    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
-    do_start
-    case "$?" in
-               0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-               2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+    start)
+       log_daemon_msg "Starting $DESC " "$NAME"
+       do_start
+       case "$?" in
+           0|1) log_end_msg 0 ;;
+           2) log_end_msg 1 ;;
        esac
-  ;;
-  stop)
-       [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+       ;;
+    stop)
+       log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
-               0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-               2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+           0|1) log_end_msg 0 ;;
+           2) log_end_msg 1 ;;
        esac
        ;;
-  status)
-       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
-       ;;
-  restart|force-reload)
-       #
-       # If the "reload" option is implemented then remove the
-       # 'force-reload' alias
-       #
+    status)
+       status "$DAEMON" && exit 0 || exit $?
+       ;;
+    restart|force-reload)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
-         0|1)
+           0|1)
                do_start
                case "$?" in
-                       0) log_end_msg 0 ;;
-                       1) log_end_msg 1 ;; # Old process is still running
-                       *) log_end_msg 1 ;; # Failed to start
+                   0) log_end_msg 0 ;;
+                   1) log_end_msg 1 ;; # Old process is still running
+                   *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
-         *)
+           *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
-  *)
+    *)
        echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
        exit 3
        ;;