#! /bin/sh # # /usr/local/etc/rc.d script for FreeBSD # $Id: spamass-milter,v 1.5 2014/09/11 00:42:45 kovert Exp $ # PROVIDE: spamass_milter # KEYWORD: FreeBSD . /usr/local/etc/rc.subr name=spamass_milter rcvar=`set_rcvar` command=/usr/local/sbin/spamass-milter # Override the spamass_milter_* variables in one of these files: # /etc/rc.conf # /etc/rc.conf.local # /etc/rc.conf.d/spamass-milter # # DO NOT CHANGE THESE DEFAULT VALUES HERE # # spamass_milter_enable YES or NO # spamass_milter_flags extra flags to pass to spamass-milter # # You probably won't need to change these unless you're running as # non-root (see the rc.subr manpage for those flags): # # spamass_milter_pidfile path to pidfile # spamass_milter_sockfile path to milter socket # load settings load_rc_config $name spamass_milter_enable=${spamass_milter_enable:-NO} spamass_milter_pidfile=${spamass_milter_pidfile:-/var/run/spamass-milter.pid} spamass_milter_sockfile=${spamass_milter_sockfile:-/var/run/spamass.sock} pidfile=${spamass_milter_pidfile} spamass_milter_flags="-p $spamass_milter_sockfile -f -P $spamass_milter_pidfile $spamass_milter_flags" run_rc_command "$1" exit 1 if ! PREFIX=$(expr $(realpath $0) : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then echo "$0: Cannot determine the PREFIX - aborting" >&2 exit 1 fi case "$1" in start) rm -f /var/run/spamass.sock [ -x ${PREFIX}/sbin/spamass-milter ] && ${PREFIX}/sbin/spamass-milter -p /var/run/spamass.sock -f -P /var/run/spamass-milter.pid && echo -n ' spamass-milter' ;; stop) if [ -s /var/run/spamass-milter.pid ] ; then pid=$(cat /var/run/spamass-milter.pid) kill -TERM $pid loop=0 while [ $loop -lt 10 ] ; do kill -0 $pid >/dev/null 2>&1 || break [ $loop -eq 1 ] && echo -n "Sleeping for 10 seconds to allow spamass-milter to shutdown" [ $loop -ge 1 ] && echo -n "." sleep 1 loop=$(( $loop + 1 )) done kill -0 $pid >/dev/null 2>&1 && echo "giving up" || echo "done" fi ;; *) echo "Usage: `basename $0` {start|stop}" >&2 ;; esac exit 0