add bug closers to d/changelog
[debian/iodine.git] / debian / iodine.iodined.init
index cafec8ec259ffd643cbcaa74db5b4b9e4a232b7b..79839a7ee1ac710aced3c4ac0b555f5d6a143e3a 100644 (file)
@@ -1,8 +1,8 @@
 #! /bin/sh
 ### BEGIN INIT INFO
 # Provides:          iodined
-# Required-Start:    $remote_fs $network
-# Required-Stop:     $remote_fs $network
+# Required-Start:    $remote_fs $network $syslog $named
+# Required-Stop:     $remote_fs $network $syslog
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: initscript for iodined
@@ -22,14 +22,11 @@ DEFAULT=iodine
 DAEMON_ARGS=""
 PIDFILE=/var/run/$NAME.pid
 SCRIPTNAME=/etc/init.d/$NAME
+CHROOTDIR=/var/run/iodine
 
 # Exit if the package is not installed
 [ -x "$DAEMON" ] || exit 0
 
-# Read configuration variable file or exit
-[ -r /etc/default/$DEFAULT ] || exit 0
-. /etc/default/$DEFAULT
-
 # Load the VERBOSE setting and other rcS variables
 . /lib/init/vars.sh
 
@@ -39,12 +36,13 @@ SCRIPTNAME=/etc/init.d/$NAME
 
 # Get config
 get_config() {
+       [ -r /etc/default/$DEFAULT ] && . /etc/default/$DEFAULT
        if [ "$START_IODINED" != "true" ] ; then
                [ "$VERBOSE" != no ] && log_progress_msg "- automatic start disabled" && log_end_msg 0
                exit 0
        else
                if [ -n "$IODINED_ARGS" ] && [ -n "$IODINED_PASSWORD" ] ; then
-                       DAEMON_ARGS="-u iodine -t /var/run/iodine -P $IODINED_PASSWORD $IODINED_ARGS"
+                       DAEMON_ARGS="-u iodine -t $CHROOTDIR $IODINED_ARGS"
                else
                        [ "$VERBOSE" != no ] && log_warning_msg "$NAME is not fully configured. Change this in /etc/default/$DEFAULT or run dpkg-reconfigure $DEFAULT."
                        exit 0
@@ -52,6 +50,16 @@ get_config() {
        fi
 }
 
+# chroot dir
+check_chrootdir() {
+       if [ -d "$CHROOTDIR" ] || mkdir -p "$CHROOTDIR" ; then
+               return 0
+       else
+               [ "$VERBOSE" != no ] && log_failure_msg "$CHROOTDIR does not exist and can't be created."
+               exit 0
+       fi
+}      
+
 #
 # Function that starts the daemon/service
 #
@@ -59,14 +67,16 @@ do_start()
 {
        # populate $DAEMON_ARGS
        get_config
+       # check CHROOTDIR
+       check_chrootdir
+       # 
        # Return
        #   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
-       start-stop-daemon --start --quiet --exec $DAEMON -- \
-               $DAEMON_ARGS \
+       start-stop-daemon --start --quiet --exec $DAEMON -- $DAEMON_ARGS -P "$IODINED_PASSWORD" \
                || return 2
        # Add code here, if necessary, that waits for the process to be ready
        # to handle requests from services started subsequently which depend
@@ -116,6 +126,9 @@ case "$1" in
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
+  status)
+       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+       ;;
   restart|force-reload)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
@@ -135,7 +148,7 @@ case "$1" in
        esac
        ;;
   *)
-       echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+       echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
        exit 3
        ;;
 esac