* Henrique de Moraes Holschuh [111121 16:45 -0200]:

> On Mon, 21 Nov 2011, Elimar Riesebieter wrote:
> > * Henrique de Moraes Holschuh [111121 13:30 -0200]:
> > > On Sun, 20 Nov 2011, Elimar Riesebieter wrote:
> > > > root@baumbart ~ # invoke-rc.d amavis stop
> > > > Stopping amavisd: (not running).
> > > > root@baumbart ~ # ps aux | grep amavisd
> > > > amavis   30220  0.0  1.5  33332 24412 ?        Ss   10:26   0:00 amavisd
> > > > (master)
> > > > amavis   30221  0.0  1.5  34724 24696 ?        S    10:26   0:00 amavisd
> > > > (ch3-avail)
> > > > amavis   30222  0.0  1.5  34744 24676 ?        S    10:26   0:01 amavisd
> > > > (ch3-avail)
> > > > root@baumbart ~ # ls -al /var/run/amavis
> > > > total 4
> > > > drwxr-xr-x  2 amavis amavis  80 Nov 20 10:26 ./
> > > > drwxr-xr-x 21 root   root   840 Nov 20 06:25 ../
> > > > -rw-r-----  1 amavis amavis   0 Nov 20 10:26 amavisd.lock
> > > > -rw-r-----  1 amavis amavis   6 Nov 20 10:26 amavisd.pid
> > > 
> > > Can you easily reproduce this?
> > 
> > Yes.
> 
> Please attach the contents of /etc/init.d/amavis...

Done

Elimar
-- 
  Excellent day for drinking heavily. 
  Spike the office water cooler;-)

#! /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 <[email protected]>
#                       and Henrique M. Holschuh <[email protected]>
#               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

Reply via email to