#!/bin/bash # source application-specific settings POSTGREY_CONF=/etc/conf.d/postgrey [ -f $POSTGREY_CONF ] && . $POSTGREY_CONF . /etc/rc.conf . /etc/rc.d/functions GROUP="postgrey" USER="postgrey" DAEMON_NAME="postgrey" POSTGREY_BIN="/usr/sbin/postgrey" PIDFILE=/var/run/postgrey/postgrey.pid mkdir -p /var/run/postgrey chown $USER:$GROUP /var/run/postgrey PID=`cat $PIDFILE 2>/dev/null` [ -d /proc/$PID ] || PID="" checkconfig() { if [ -z $POSTGREY_ADDR ]; then echo "You need to set POSTGREY_ADDR instead of POSTGREY_TYPE parameter bundle" return 1 fi } start() { stat_busy "Starting Postgrey" checkconfig || { stat_fail; return 1; } [ -z "$PID" ] && $POSTGREY_BIN --daemonize $POSTGREY_ADDR \ --group=$GROUP --user=$USER $POSTGREY_OPTS --pidfile=$PIDFILE \ --greylist-text="$POSTGREY_TEXT" > /dev/null if [ $? -gt 0 ] then stat_fail else add_daemon postgrey stat_done fi } stop() { stat_busy "Stopping Postgrey" [ ! -z "$PID" ] && kill -9 $PID &> /dev/null if [ $? -gt 0 ] then stat_fail else rm_daemon postgrey rm -f $PIDFILE stat_done fi } case "$1" in start) start ;; stop) stop ;; restart) # calling 'stop' and 'start' without the $0 fails... $0 stop $0 start ;; *) echo "usage: $0 {start|stop|restart}" esac exit 0