#! /bin/sh # # amavisd /etc/init.d/ initscript for amavisd-new # $Id: amavisd-new.init 800 2006-01-31 00:07:45Z hmh $ # # Copyright (c) 2003 by Brian May # and Henrique M. Holschuh # Distributed under the GPL version 2 # # # How this thing works: # ${START} must be only what is needed for start-stop-daemon, DO NOT # ADD ANY PARAMETERS HERE! we might use it for --test, for example. # ${STOP} works just like ${START}, --signal is used with it. # # ${PARAMS} are the parameters to give the daemon when really starting # it. ### BEGIN INIT INFO # Provides: amavisd-new # Required-Start: $syslog $network $local_fs $remote_fs # Required-Stop: $syslog $network $local_fs $remote_fs # Should-Start: # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starts amavisd-new mailfilter # Description: Launches the amavisd-new mailfilter ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/amavisd-new DAEMON2=/usr/bin/perl NAME=amavisd DAEMONNAME=amavisd-new DESC=amavisd PIDFILE=/var/run/amavis/${NAME}.pid . /lib/lsb/init-functions test -f ${DAEMON} || exit 0 set -e START="--start --quiet --pidfile $PIDFILE --name ${DAEMONNAME} --startas ${DAEMON}" STOP="--stop --quiet --pidfile $PIDFILE --name ${DAEMONNAME}" PARAMS= check_noncompatible_upgrade() { for i in /etc/amavisd.conf /etc/amavis/amavisd.conf ; do if [ -e "${i}.disabled" ] ; then echo "Found incompatible config file flag!" >&2 echo "Due to safety concerns, amavisd-new will not be started." >&2 echo "Refer to /usr/share/doc/amavisd-new/README.Debian for instructions." >&2 exit 1 fi done } createdir() { # $1 = user # $2 = group # $3 = permissions (octal) # $4 = path to directory [ -d "$4" ] || mkdir -p "$4" chown -c -h "$1:$2" "$4" chmod -c "$3" "$4" } fixdirs() { dir=$(dpkg-statoverride --list /var/run/amavis) || { echo "You are missing a dpkg-statoverride on /var/run/amavis. Fix it, otherwise you risk silent breakage on upgrades." >&2 exit 1 } [ -z "$dir" ] || createdir $dir : } cleanup() { [ -d /var/lib/amavis ] && find /var/lib/amavis -maxdepth 1 -name 'amavis-*' -type d \ -exec rm -rf "{}" \; >/dev/null 2>&1 || true [ -d /var/lib/amavis/tmp ] && find /var/lib/amavis/tmp -maxdepth 1 -name 'amavis-*' -type d \ -exec rm -rf "{}" \; >/dev/null 2>&1 || true : } case "$1" in start) echo -n "Starting $DESC: " fixdirs # check_noncompatible_upgrade if start-stop-daemon ${START} -- ${PARAMS} start >/dev/null ; then echo "amavisd-new." else if start-stop-daemon --test ${START} >/dev/null 2>&1; then echo "(failed)." exit 1 else echo "(already running)." exit 0 fi fi ;; stop) echo -n "Stopping $DESC: " if start-stop-daemon ${STOP} --retry 10 >/dev/null ; then cleanup echo "amavisd-new." else if start-stop-daemon --test ${START} >/dev/null 2>&1; then echo "(not running)." exit 0 else echo "(failed)." exit 1 fi fi ;; # reload) # echo "Reloading $DESC configuration files." # start-stop-daemon ${STOP} --signal 1 # ;; restart|force-reload) $0 stop exec $0 start ;; debug|debug-sa) mode="$1" echo "Trying to run amavisd-new in ${mode} mode..." fixdirs # check_noncompatible_upgrade exec ${DAEMON} ${PARAMS} "${mode}" ;; status) status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $? ;; *) N=/etc/init.d/amavis #echo "Usage: $N {start|stop|restart|reload|force-reload|debug}" >&2 echo "Usage: $N {start|stop|restart|force-reload|status|debug}" >&2 exit 1 ;; esac exit 0