Hello,

I have modified the initscript of amavis to have status/monitor section.

I have attached to this mail, maybe it is useful for another person.

Regards.
#! /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 <b...@debian.org>
#                       and Henrique M. Holschuh <h...@debian.org>
#               Distributed under the GPL version 2
#               Modified by Adrián Chapela, added status and monitor section 
2009 adrian.chap...@ghandalf.org
#
#
# 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
# Required-Stop:     $syslog $network $local_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"
result=0

test -f ${DAEMON} || exit 0

set -e

START="--start --quiet --pidfile /var/run/amavis/${NAME}.pid --name 
${DAEMONNAME} --startas ${DAEMON}"
STOP="--stop --quiet --pidfile /var/run/amavis/${NAME}.pid --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|monitor)
        if [ -f $PIDFILE ]; then
                kill -0 `cat $PIDFILE`
                result=$?
                if [ $result -eq 0 ]; then
                        echo "Ok"
                        result=0
                else
                        echo $NAME" - Not running"
                        result=1
                fi
        else
          echo "PID file not found"
          result=1
        fi
        exit $result
        ;;
  *)
        N=/etc/init.d/amavis
        #echo "Usage: $N {start|stop|restart|reload|force-reload|debug}" >&2
        echo "Usage: $N {start|stop|restart|force-reload|debug|monitor|status}" 
>&2
        exit 1
        ;;
esac

exit 0
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
AMaViS-user mailing list
AMaViS-user@lists.sourceforge.net 
https://lists.sourceforge.net/lists/listinfo/amavis-user 
 AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3 
 AMaViS-HowTos:http://www.amavis.org/howto/ 

Reply via email to