[Mimedefang] Slave 0 stderr: Out of memory!

ron jon irazimmerman at hotmail.com
Tue Nov 9 17:51:29 EST 2004


Hi,

I have a working setup (mimedefang-2.38 / SpamAssassin-2.60) running on 
FreeBSD 5.2.1-RELEASE.
I recently tried to add a new cf file to /usr/local/share/spamassassin. >
>sa-blacklist-current-bigevil.cf (1.5MB)  from  
>http://www.stearns.org/sa-blacklist.
I stopped /started  (mimedefang, spamassassin, sendmail),
and this is the output of my maillog:

Nov  9 12:18:42 bug mimedefang-multiplexor: started; minSlaves=2, 
maxSlaves=10, maxRequests=500, maxIdleTime=300, busyTimeout=600, 
clientTimeout=10
Nov  9 12:18:42 bug mimedefang-multiplexor: Starting slave 0 (pid 57985) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:18:42 bug mimedefang[57994]: Multiplexor alive - entering main 
loop
Nov  9 12:18:43 bug sm-mta[58003]: starting daemon (8.12.10): 
SMTP+queueing at 00:30:00
Nov  9 12:18:43 bug sm-msp-queue[58006]: starting daemon (8.12.10): 
queueing at 00:30:00
Nov  9 12:18:45 bug mimedefang-multiplexor: Starting slave 1 (pid 58008) (2 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:18:47 bug mimedefang-multiplexor: Slave 0 stderr: Out of memory!
Nov  9 12:18:47 bug mimedefang-multiplexor: Reap: Idle slave 0 (pid 57985) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:18:47 bug mimedefang-multiplexor: Slave 0 resource usage: req=0, 
scans=0, user=1.852, sys=1.435, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:18:49 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:18:49 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58008) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:18:49 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.985, sys=1.528, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:18:50 bug mimedefang-multiplexor: Starting slave 1 (pid 58012) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:18:52 bug sm-mta[58011]: iA9HIpYu058011: 
200-158-2-74.dsl.telesp.net.br [200.158.2.74] did not issue 
MAIL/EXPN/VRFY/ETRN during connection to MTA
Nov  9 12:18:53 bug mimedefang-multiplexor: Starting slave 0 (pid 58013) (2 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:18:53 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:18:53 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58012) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:18:53 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.643, sys=1.309, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:18:56 bug mimedefang-multiplexor: Starting slave 1 (pid 58014) (2 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:18:57 bug mimedefang-multiplexor: Slave 0 stderr: Out of memory!
Nov  9 12:18:57 bug mimedefang-multiplexor: Reap: Idle slave 0 (pid 58013) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:18:57 bug mimedefang-multiplexor: Slave 0 resource usage: req=0, 
scans=0, user=1.893, sys=1.355, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:00 bug mimedefang-multiplexor: Starting slave 0 (pid 58015) (2 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:01 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:01 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58014) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:01 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=2.159, sys=1.535, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:04 bug mimedefang-multiplexor: Slave 0 stderr: Out of memory!
Nov  9 12:19:04 bug mimedefang-multiplexor: Starting slave 1 (pid 58017) (2 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:04 bug mimedefang-multiplexor: Reap: Idle slave 0 (pid 58015) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:04 bug mimedefang-multiplexor: Slave 0 resource usage: req=0, 
scans=0, user=2.200, sys=1.419, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:07 bug mimedefang-multiplexor: Starting slave 0 (pid 58018) (2 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:09 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:09 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58017) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:09 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.819, sys=1.356, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:13 bug mimedefang-multiplexor: Starting slave 1 (pid 58019) (2 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:13 bug mimedefang-multiplexor: Slave 0 stderr: Out of memory!
Nov  9 12:19:13 bug mimedefang-multiplexor: Reap: Idle slave 0 (pid 58018) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:13 bug mimedefang-multiplexor: Slave 0 resource usage: req=0, 
scans=0, user=1.999, sys=1.096, nswap=0, majflt=0, minflt=49115, 
maxrss=29964, bi=0, bo=0
Nov  9 12:19:13 bug spamd[58000]: server started on port 783/tcp (running 
version 2.60)
Nov  9 12:19:15 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:15 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58019) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:15 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.411, sys=1.403, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:16 bug mimedefang-multiplexor: Starting slave 1 (pid 58020) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:18 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:18 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58020) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:18 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.375, sys=1.203, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:19 bug mimedefang-multiplexor: Starting slave 1 (pid 58021) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:21 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:22 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58021) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:22 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.382, sys=1.327, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:22 bug mimedefang-multiplexor: Starting slave 1 (pid 58022) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:24 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:25 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58022) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:25 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.246, sys=1.441, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:25 bug mimedefang-multiplexor: Starting slave 1 (pid 58023) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:28 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:28 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58023) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:28 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.322, sys=1.368, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:28 bug mimedefang-multiplexor: Starting slave 1 (pid 58024) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:30 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:31 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58024) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:31 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.432, sys=1.243, nswap=0, majflt=0, minflt=49115, 
maxrss=29932, bi=0, bo=0
Nov  9 12:19:31 bug mimedefang-multiplexor: Starting slave 1 (pid 58026) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:34 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:34 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58026) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:34 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.316, sys=1.378, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:34 bug mimedefang-multiplexor: Starting slave 1 (pid 58027) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:36 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:37 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58027) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:37 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.376, sys=1.282, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:37 bug mimedefang-multiplexor: Starting slave 1 (pid 58028) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:39 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:40 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58028) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:40 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.330, sys=1.315, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:40 bug mimedefang-multiplexor: Starting slave 1 (pid 58029) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:43 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:43 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58029) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:43 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.449, sys=1.199, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:43 bug mimedefang-multiplexor: Starting slave 1 (pid 58030) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:46 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:46 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58030) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:46 bug mimedefang-multiplexor: Slave 1 resource usage: req=0, 
scans=0, user=1.460, sys=1.201, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0
Nov  9 12:19:46 bug mimedefang-multiplexor: Starting slave 1 (pid 58031) (1 
running): Bringing slaves up to minSlaves (2)
Nov  9 12:19:49 bug mimedefang-multiplexor: Slave 1 stderr: Out of memory!
Nov  9 12:19:49 bug mimedefang-multiplexor: Slave 1 ran out of memory -- 
possible DoS attack due to complex MIME?
Nov  9 12:19:49 bug mimedefang-multiplexor: Reap: Idle slave 1 (pid 58031) 
exited normally with status 1 (SLAVE DIED UNEXPECTEDLY)
Nov  9 12:19:49 bug mimedefang-multiplexor: Slave 1 resource usage: req=1, 
scans=1, user=1.434, sys=1.277, nswap=0, majflt=0, minflt=49115, 
maxrss=29960, bi=0, bo=0



It seems like the 1.5MB sa-blacklist-current-bigevil.cf file is too big for 
my setup.

My Hardware:

CPU: Intel(R) Xeon(TM) CPU 1.80GHz (1794.19-MHz 686-class CPU)
Origin = "GenuineIntel"  Id = 0xf27  Stepping = 7
Hyperthreading: 2 logical CPUs
real memory  = 805175296 (767 MB)
avail memory = 772407296 (736 MB)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
cpu0 (BSP): APIC ID:  0
cpu1 (AP): APIC ID:  1
cpu2 (AP): APIC ID:  6
cpu3 (AP): APIC ID:  7


I'm pretty sure it's not a H/W issue, but a problem with my configuration.

Any help would be much appreciated.



This is what I have in my "mimedefang.sh" file:

#!/bin/sh
#
# Generic start/stop script for MIMEDefang.  Should work on most
# flavors of UNIX.

RETVAL=0
prog='mimedefang'
SPOOLDIR='/var/spool/MIMEDefang'
PID="$SPOOLDIR/$prog.pid"
MXPID="$SPOOLDIR/$prog-multiplexor.pid"

# Is the program executable?  We search in /usr/bin and /usr/local/bin.

if [ -x /usr/local/bin/$prog ] ; then
    PROGDIR=/usr/local/bin
elif [ -x /usr/bin/$prog ] ; then
    PROGDIR=/usr/bin
elif [ -x /usr/local/bin/$prog ] ; then
    PROGDIR=/usr/local/bin
else
    exit 0
fi

# Locale should be set to "C" for generating valid date headers
LC_ALL=C
export LC_ALL

# The settings which follow are defaults.  You can override them by
# placing assignments in /usr/local/etc/mimedefang/mimedefang.conf

# The socket used by mimedefang to communicate with sendmail
# SOCKET=$SPOOLDIR/mimedefang.sock

# Run the multiplexor and filters as this user, not root.  RECOMMENDED
MX_USER=mailnull

# Syslog facility
# SYSLOG_FACILITY=mail

# If you want to keep spool directories around if the filter fails,
# set the next one to yes
# KEEP_FAILED_DIRECTORIES=no

# "yes" turns on the multiplexor relay checking function
# MX_RELAY_CHECK=no

# "yes" turns on the multiplexor sender checking function
# MX_SENDER_CHECK=no

# "yes" turns on the multiplexor recipient checking function
# MX_RECIPIENT_CHECK=no

# Set to yes if you want the multiplexor to log events to syslog
MX_LOG=yes

# The multiplexor does not start all slaves at the same time.  Instead,
# it starts one slave every MX_SLAVE_DELAY seconds when the system is idle.
# (If the system is busy, the multiplexor starts slaves as incoming mail
# requires attention.)
# MX_SLAVE_DELAY=3

# The next setting is an absolute limit on slave activation.  The 
multiplexor
# will NEVER activate a slave within MX_MIN_SLAVE_DELAY seconds of another.
# The default of zero means that the multiplexor will activate slaves as
# quickly as necessary to keep up with incoming mail.
# MX_MIN_SLAVE_DELAY=0

# Set to yes if you want the multiplexor to log stats in
# /var/log/mimedefang/stats  The /var/log/mimedefang directory must
# exist and be writable by the user you're running MIMEDefang as.
# MX_STATS=no

# Set to yes if you want the stats file flushed after each entry
# MX_FLUSH_STATS=no

# Set to yes if you want the multiplexor to log stats to syslog
# MX_STATS_SYSLOG=no

# The socket used by the multiplexor
# MX_SOCKET=$SPOOLDIR/mimedefang-multiplexor.sock

# Maximum # of requests a process handles
# MX_REQUESTS=200

# Minimum number of processes to keep.  The default of 0 is probably
# too low; we suggest 2 instead.
MX_MINIMUM=2

# Maximum number of processes to run (mail received while this many
# processes are running is rejected with a temporary failure, so be
# wary of how many emails you receive at a time).  This applies only
# if you DO use the multiplexor.  The default value of 2 is probably
# too low; we suggest 10 instead
MX_MAXIMUM=10

# Uncomment to log slave status; it will be logged every
# MX_LOG_SLAVE_STATUS_INTERVAL seconds
# MX_LOG_SLAVE_STATUS_INTERVAL=30

# Limit slave processes' resident-set size to this many kilobytes.  Default
# is unlimited.
MX_MAX_RSS=10000

# Limit total size of slave processes' memory space to this many kilobytes.
# Default is unlimited.
MX_MAX_AS=30000

# Number of seconds a process should be idle before checking for
# minimum number and killed
# MX_IDLE=300

# Number of seconds a process is allowed to scan an email before it is
# considered dead.  The default is 30 seconds; we suggest 600.
MX_BUSY=600

# Extra sendmail macros to pass.  Actually, you can add any extra
# mimedefang options here...
# MD_EXTRA="-a auth_author"

# Multiplexor queue size -- default is 0 (no queueing)
# MX_QUEUE_SIZE=10

# Multiplexor queue timeout -- default is 30 seconds
# MX_QUEUE_TIMEOUT=30

# SUBFILTER specifies which filter rules file to use
# SUBFILTER=/usr/local/etc/mimedefang/mimedefang-filter


# Source configuration
if [ -f /usr/local/etc/mimedefang/$prog.conf ] ; then
    . /usr/local/etc/mimedefang/$prog.conf
fi

# Make sure required vars are set
SOCKET=${SOCKET:=$SPOOLDIR/$prog.sock}
MX_SOCKET=${MX_SOCKET:=$SPOOLDIR/$prog-multiplexor.sock}

start_it() {
    if test -r $PID ; then
	if kill -0 `cat $PID` > /dev/null 2>&1 ; then
	    echo "mimedefang (`cat $PID`) seems to be running."
	    return 1
	fi
    fi
    if test -r $MXPID ; then
	if kill -0 `cat $MXPID` > /dev/null 2>&1 ; then
	    echo "mimedefang-multiplexor (`cat $MXPID`) seems to be running."
	    return 1
	fi
    fi

    printf "%-60s" "Starting $prog-multiplexor: "
    rm -f $MX_SOCKET > /dev/null 2>&1
    $PROGDIR/$prog-multiplexor -p $MXPID \
	`[ -n "$FILTER" ] && echo "-f $FILTER"` \
	`[ -n "$SYSLOG_FACILITY" ] && echo "-S $SYSLOG_FACILITY"` \
	`[ -n "$SUBFILTER" ] && echo "-F $SUBFILTER"` \
	`[ -n "$MX_MINIMUM" ] && echo "-m $MX_MINIMUM"` \
	`[ -n "$MX_MAXIMUM" ] && echo "-x $MX_MAXIMUM"` \
	`[ -n "$MX_LOG_SLAVE_STATUS_INTERVAL" ] && echo "-L 
$MX_LOG_SLAVE_STATUS_INTERVAL"` \
	`[ -n "$MX_USER" ] && echo "-U $MX_USER"` \
	`[ -n "$MX_IDLE" ] && echo "-i $MX_IDLE"` \
	`[ -n "$MX_BUSY" ] && echo "-b $MX_BUSY"` \
	`[ -n "$MX_REQUESTS" ] && echo "-r $MX_REQUESTS"` \
	`[ -n "$MX_SLAVE_DELAY" ] && echo "-w $MX_SLAVE_DELAY"` \
	`[ -n "$MX_MIN_SLAVE_DELAY" ] && echo "-W $MX_MIN_SLAVE_DELAY"` \
	`[ -n "$MX_MAX_RSS" ] && echo "-R $MX_MAX_RSS"` \
	`[ -n "$MX_MAX_AS" ] && echo "-M $MX_MAX_AS"` \
	`[ "$MX_LOG" = "yes" ] && echo "-l"` \
	`[ "$MX_STATS" = "yes" ] && echo "-t /var/log/mimedefang/stats"` \
	`[ "$MX_STATS" = "yes" -a "$MX_FLUSH_STATS" = "yes" ] && echo "-u"` \
	`[ "$MX_STATS_SYSLOG" = "yes" ] && echo "-T"` \
	`[ -n "$MX_QUEUE_SIZE" ] && echo "-q $MX_QUEUE_SIZE"` \
	`[ -n "$MX_QUEUE_TIMEOUT" ] && echo "-Q $MX_QUEUE_TIMEOUT"` \
	-s $MX_SOCKET
    RETVAL=$?
    if [ $RETVAL = 0 ] ; then
	echo "[  OK  ]"
    else
	echo "[FAILED]"
	return 1
    fi

    # Start mimedefang
    printf "%-60s" "Starting $prog: "
    rm -f $SOCKET > /dev/null 2>&1
    $PROGDIR/$prog -P $PID \
	-m $MX_SOCKET \
	`[ -n "$MX_USER" ] && echo "-U $MX_USER"` \
	`[ -n "$SYSLOG_FACILITY" ] && echo "-S $SYSLOG_FACILITY"` \
	`[ "$MX_RELAY_CHECK" = "yes" ] && echo "-r"` \
	`[ "$MX_SENDER_CHECK" = "yes" ] && echo "-s"` \
	`[ "$MX_RECIPIENT_CHECK" = "yes" ] && echo "-t"` \
	`[ "$KEEP_FAILED_DIRECTORIES" = "yes" ] && echo "-k"` \
	`[ "$MD_EXTRA" != "" ] && echo $MD_EXTRA` \
	-p $SOCKET
    RETVAL=$?
    if [ $RETVAL = 0 ] ; then
	echo "[  OK  ]"
    else
	echo "[FAILED]"
	kill `cat $MXPID`
	return 1
    fi
    return 0
}

stop_it() {
    # Stop daemon
    printf "%-60s" "Shutting down $prog: "
    if test -f "$PID" ; then
	kill `cat $PID`
	RETVAL=$?
    else
	RETVAL=1
    fi
    if [ $RETVAL = 0 ] ; then
	echo "[  OK  ]"
    else
	echo "[FAILED]"
    fi

    rm -f $SOCKET > /dev/null 2>&1
    rm -f $PID > /dev/null 2>&1

    # Stop daemon
    printf "%-60s" "Shutting down $prog-multiplexor: "
    if test -f "$MXPID" ; then
	kill `cat $MXPID`
	RETVAL=$?
    else
	RETVAL=1
    fi
    if [ $RETVAL = 0 ] ; then
	echo "[  OK  ]"
    else
	echo "[FAILED]"
    fi

    rm -f $MX_SOCKET > /dev/null 2>&1
    rm -f $MXPID > /dev/null 2>&1
}

# See how we were called.
case "$1" in
  start)
  start_it
    ;;

  stop)
  stop_it
    ;;

  restart)
    stop_it
    start_it
    RETVAL=$?
    ;;

  reread|reload)
    if [ -r $MXPID ] ; then
	kill -INT `cat $MXPID`
	RETVAL=$?
	if [ $RETVAL = 0 ] ; then
	    echo "Told $prog-multiplexor to force reread of filter rules."
	else
	    echo "Could not signal $prog-multiplexor"
	fi
    else
	RETVAL=1
	echo "Could not find process-ID of $prog-multiplexor"
    fi
    ;;

  *)
    echo "Usage: $0 {start|stop|restart|reread|reload}"
    exit 1
esac

exit $RETVAL

_________________________________________________________________
Powerful Parental Controls Let your child discover the best the Internet has 
to offer.  
http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI=1034&SU=http://hotmail.com/enca&HL=Market_MSNIS_Taglines 
  Start enjoying all the benefits of MSN® Premium right now and get the 
first two months FREE*.




More information about the MIMEDefang mailing list