diff options
Diffstat (limited to 'src/postgrey/postgrey.rc')
-rwxr-xr-x | src/postgrey/postgrey.rc | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/postgrey/postgrey.rc b/src/postgrey/postgrey.rc new file mode 100755 index 0000000..dc25887 --- /dev/null +++ b/src/postgrey/postgrey.rc @@ -0,0 +1,74 @@ +#!/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 |