X-Git-Url: https://git.toastfreeware.priv.at/debian/iodine.git/blobdiff_plain/975f914f4d9b4d5baecc893de2765d6446d64c9b..c9531f1dd50ae2fedf8c559bb993086ddcef6371:/debian/iodine.iodined.init diff --git a/debian/iodine.iodined.init b/debian/iodine.iodined.init index a7227ec..79839a7 100644 --- a/debian/iodine.iodined.init +++ b/debian/iodine.iodined.init @@ -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,19 +36,30 @@ SCRIPTNAME=/etc/init.d/$NAME # Get config get_config() { + [ -r /etc/default/$DEFAULT ] && . /etc/default/$DEFAULT if [ "$START_IODINED" != "true" ] ; then - log_warning_msg "$NAME is not configured to start automatically. Change this in /etc/default/$DEFAULT or run dpkg-reconfigure $DEFAULT." + [ "$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 - log_warning_msg "$NAME is not fully configured. Change this in /etc/default/$DEFAULT or run dpkg-reconfigure $DEFAULT." + [ "$VERBOSE" != no ] && log_warning_msg "$NAME is not fully configured. Change this in /etc/default/$DEFAULT or run dpkg-reconfigure $DEFAULT." exit 0 fi 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 --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ + start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \ || return 1 - start-stop-daemon --start --quiet --pidfile $PIDFILE --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 @@ -83,7 +93,7 @@ do_stop() # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/5/KILL/5 --pidfile $PIDFILE --name $NAME + start-stop-daemon --stop --quiet --retry=TERM/5/KILL/5 --exec $DAEMON RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks @@ -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