From 3c56420d6f7066dd0d09cd404617dee3c429ab18 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Sun, 1 Mar 2015 17:04:59 +0100 Subject: [PATCH] Fix debian init script so it works with systemd. --- citadel/debian/citadel.init | 48 ++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/citadel/debian/citadel.init b/citadel/debian/citadel.init index 2e7364e3d..7fb213df9 100644 --- a/citadel/debian/citadel.init +++ b/citadel/debian/citadel.init @@ -1,8 +1,8 @@ #!/bin/sh ### BEGIN INIT INFO # Provides: citadel -# Required-Start: $local_fs $remote_fs -# Required-Stop: $local_fs $remote_fs +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: control citadel server start at boot time @@ -21,12 +21,12 @@ DESC="Citadel Groupware " NAME=citserver DAEMON=/usr/sbin/$NAME PIDFILE=$RUNDIR/citadel.pid -DAEMON_ARGS=" -d -x3 -lmail -t/dev/null" +DAEMON_ARGS=" -d -lmail -t/dev/null" SCRIPTNAME=/etc/init.d/citadel SENDCOMMAND=/usr/sbin/sendcommand # Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 +[ -x "$DAEMON" ] || { echo "$DAEMON not installed"; exit 1; } # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME @@ -50,7 +50,7 @@ fi # do_start() { - # for ubuntu: check our volatile dirs. + # check our volatile dirs. if test ! -d $RUNDIR; then mkdir -p $RUNDIR chmod go+rx $RUNDIR @@ -72,17 +72,12 @@ do_start() # do_stop() { - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # 2 if daemon could not be stopped - # other if a failure occurred - if $SENDCOMMAND "DOWN" >/dev/null 2>&1 ; then - if test ! -f "$PIDFILE"; then - echo Unable to find Citserver. Not running? - return 1 - fi - PID=`cat $PIDFILE` + if test -S $RUNDIR/citadel.socket; then + sendcommand "DOWN" || : + fi + + PID=`cat $PIDFILE 2>/dev/null || :` + if [ ! -z $PID ]; then rm -f $PIDFILE count=0; while test -S /var/run/citadel/citadel.socket -o -d /proc/$PID; do @@ -98,10 +93,9 @@ do_stop() fi done return 0 - else - rm -f $PIDFILE - return 2 fi + + return 0 } # @@ -142,13 +136,14 @@ case "$1" in fi do_stop if test -n "$MODERN"; then - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac + [ "$VERBOSE" != no ] && log_end_msg 0 fi ;; - restart|force-reload) + restart) + $0 stop + $0 start + ;; + force-reload) if test -n "$MODERN"; then log_daemon_msg "Restarting $DESC" "$NAME" else @@ -169,6 +164,11 @@ case "$1" in esac fi ;; + + status) + status_of_proc "$DAEMON" $NAME + ;; + *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 -- 2.30.2