]> git.proxmox.com Git - pve-sheepdog.git/blobdiff - debian/pve-sheepdog.sheepdog.init.d
allow to set DAEMON_ARGS in /etc/default/sheepdog
[pve-sheepdog.git] / debian / pve-sheepdog.sheepdog.init.d
index fbf4adca4e185b57de8f54b3b43c1aecf978075f..82c26fff1364c63c13f457a23578dca5cded572a 100644 (file)
@@ -1,8 +1,8 @@
 #!/bin/sh
 ### BEGIN INIT INFO
 # Provides:          sheepdog
-# Required-Start:    $network $remote_fs $syslog
-# Required-Stop:     $network $remote_fs $syslog
+# Required-Start:    $network $remote_fs $syslog cman
+# Required-Stop:     $network $remote_fs $syslog cman
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Sheepdog server
@@ -16,17 +16,15 @@ PATH=/sbin:/usr/sbin:/bin:/usr/bin
 DESC="Sheepdog Server"        # Introduce a short description here
 NAME=sheepdog                 # Introduce the short server's name here
 DAEMON=/usr/sbin/sheep        # Introduce the server's location here
-DAEMON_ARGS=""                # Arguments to run the daemon with
-##PIDFILE=/var/run/sheep.pid
 SCRIPTNAME=/etc/init.d/$NAME
+PIDFILE="/var/run/sheep.pid"
 
 # Exit if the package is not installed
 [ -x $DAEMON ] || exit 0
 
-# Defaults
-SHEEPDOG_START_SEQUENCE="_1"
-SHEEPDOG_DEAMON_ARGS_1=""
-SHEEPDOG_PATH_1="/var/lib/sheepdog/disc1"
+ROOTDIR="/var/lib/sheepdog/"
+JOURNALSIZE="256"
+DAEMON_ARGS=""
 
 # Read configuration variable file if it is present
 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
@@ -37,18 +35,6 @@ fi
 
 . /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
 #
@@ -60,18 +46,25 @@ do_start()
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
+       ulimit -n 1024000 #avoid check_host_env(395) WARN: Allowed open files 1024 too small, suggested 1024000 warning message
+       ulimit -c unlimited #avoid check_host_env(404) Allowed core file size 0, suggested unlimited warning message
+       DAEMON_ARGS="${DAEMON_ARGS} --pidfile ${PIDFILE}"
+       DAEMON_ARGS="${DAEMON_ARGS} $ROOTDIR"
+
+       # /path/to/meta-store,/path/to/disk1{,/path/to/disk2,...}
+       for d in $ROOTDIR/disc*
+       do
+           if [ -d "$d" ]; then
+               DAEMON_ARGS="${DAEMON_ARGS},$d"
+           fi
+       done
 
-       for SHEEP in $SHEEPDOG_START_SEQUENCE; do
-               eval DAEMON_ARGS=\$SHEEPDOG_DEAMON_ARGS$SHEEP
-               eval SHEEPDOG_PATH=\$SHEEPDOG_PATH$SHEEP
-               eval PIDFILE=/var/run/$NAME$SHEEP.pid
-
-               mkdir -p $SHEEPDOG_PATH
-
-               status_of_proc -p ${PIDFILE} $DAEMON "$NAME" >/dev/null && continue
+       if [ -d "$ROOTDIR/journal" ]; then
+               DAEMON_ARGS="${DAEMON_ARGS} -j dir=$ROOTDIR/journal,size=$JOURNALSIZE"
 
-               start-stop-daemon --start --quiet --pidfile ${PIDFILE} --exec $DAEMON -- --pidfile ${PIDFILE} $DAEMON_ARGS $SHEEPDOG_PATH || return 2
-       done
+       fi
+        status_of_proc -p ${PIDFILE} $DAEMON "$NAME" >/dev/null && continue
+        start-stop-daemon --start --quiet --pidfile ${PIDFILE} --exec $DAEMON -- $DAEMON_ARGS || return 2
 
        return 0
 }
@@ -87,15 +80,7 @@ do_stop()
        #   2 if daemon could not be stopped
        #   other if a failure occurred
 
-       RETVAL=0
-       for SHEEP in $SHEEPDOG_START_SEQUENCE; do
-               eval DAEMON_ARGS=\$SHEEPDOG_DEAMON_ARGS$SHEEP
-               eval SHEEPDOG_PATH=\$SHEEPDOG_PATH$SHEEP
-               eval PIDFILE=/var/run/$NAME$SHEEP.pid
-               start-stop-daemon --stop --oknodo --retry=TERM/20/KILL/5 --quiet --pidfile ${PIDFILE} --exec $DAEMON || RETVAL=2
-       done
-
-       return "$RETVAL"
+       start-stop-daemon --stop --oknodo --retry=TERM/20/KILL/5 --quiet --pidfile ${PIDFILE} --exec $DAEMON || return 2
 }
 
 case "$1" in
@@ -117,12 +102,7 @@ case "$1" in
        
        ;;
     status)
-       for SHEEP in $SHEEPDOG_START_SEQUENCE; do
-               eval DAEMON_ARGS=\$SHEEPDOG_DEAMON_ARGS$SHEEP
-               eval SHEEPDOG_PATH=\$SHEEPDOG_PATH$SHEEP
-               eval PIDFILE=/var/run/$NAME$SHEEP.pid
-               status_of_proc -p ${PIDFILE} $DAEMON "$NAME${SHEEP}" || exit $?
-       done
+           status_of_proc -p ${PIDFILE} $DAEMON "$NAME ${dir}" || exit 1
        ;;
     restart|force-reload)
        log_daemon_msg "Restarting $DESC" "$NAME"