blob: 19d41e0c2c752f66634a241b50d01b11357a88f9 [file] [log] [blame]
#!@RCD_SCRIPTS_SHELL@
#
# $NetBSD$
#
# Start script for 'spamd' installed by the pkgsrc package collection
# running on *BSD, MacOS X, Solaris, Linux, and various other U*IX-like
# systems.
#
# The 'spamd' daemon checks emails provided by the 'spamc' client for signs
# of spam
#
# PLEASE read the file
# @PREFIX@/share/doc/spamassassin/spamd/README
# especially the section about security.
## only for DragonFlyBSD/NetBSD
# PROVIDE: spamd
# REQUIRE: LOGIN
# BEFORE: mail
# KEYWORD: shutdown
##
PATH=/sbin:/bin:/usr/sbin:/usr/bin:@PREFIX@/bin
export PATH
if [ -f /etc/rc.subr ]
then
. /etc/rc.subr
fi
name="spamd"
rcvar=$name
command_interpreter="@PERL5@"
command="@PREFIX@/bin/spamd"
pidfile="/var/run/${name}.pid"
sig_stop="TERM"
command_args="-d -r ${pidfile}"
extra_commands="reload"
sig_reload="HUP"
# default values, may be overridden on NetBSD/DragonFlyBSD by setting them
# in /etc/rc.conf
spamd_flags=${spamd_flags-"-H -c"}
spamd=${spamd:-NO}
spamd_fdlimit=${spamd_fdlimit-"128"}
# both set during package build
OPSYS=@OPSYS@
INTERPRETER_SUPPORT=@INTERPRETER_SUPPORT@
# A default limit of 64 on NetBSD may be too low for many
# people (e.g. with additional RBL rules)
SOFT_FDLIMIT=`ulimit -S -n`
HARD_FDLIMIT=`ulimit -H -n`
if [ ${spamd_fdlimit} -gt ${SOFT_FDLIMIT} ]; then
if [ ${spamd_fdlimit} -le ${HARD_FDLIMIT} ]; then
ulimit -S -n ${spamd_fdlimit}
else
ulimit -S -n ${HARD_FDLIMIT}
fi
fi
spamd_start()
{
if [ -n "${the_spamd_pid}" ]; then
echo "${command} already running as pid ${the_spamd_pid}."
return 1
fi
echo "Starting spamd"
${command} ${spamd_flags} ${command_args}
}
spamd_stop()
{
if [ -z "${the_spamd_pid}" ]; then
echo "${command} not running? (check ${pidfile})."
return 1
fi
echo "Stopping spamd"
kill -${sig_stop} ${the_spamd_pid}
}
spamd_status()
{
if [ -z "${the_spamd_pid}" ]; then
echo "${command} is not running? (check ${pidfile})."
else
echo "${command} is running as pid ${the_spamd_pid}."
fi
}
spamd_reload()
{
if [ -z "${the_spamd_pid}" ]; then
echo "${command} not running? (check ${pidfile})."
return 1
fi
echo "Reloading spamd"
kill -${sig_reload} ${the_spamd_pid}
}
if [ "${OPSYS}" = "NetBSD" -o "${OPSYS}" = "DragonFly" ]; then
if checkyesno INTERPRETER_SUPPORT; then
: # support for 'command_interpreter' was added in NetBSD 1.6
else
start_cmd="spamd_start"
stop_cmd="spamd_stop"
status_cmd="spamd_status"
reload_cmd="spamd_reload"
the_spamd_pid=`check_pidfile ${pidfile} ${command_interpreter}`
fi
load_rc_config $name
run_rc_command "$1"
else # not NetBSD or DragonFlyBSD
if [ -f ${pidfile} ]; then
the_spamd_pid=`head -1 ${pidfile}`
else
the_spamd_pid=
fi
case ${1+"$@"} in
start)
spamd_start
;;
stop)
spamd_stop
;;
restart)
spamd_stop
sleep 1
spamd_start
;;
status)
spamd_status
;;
reload)
spamd_reload
;;
*)
echo "Usage: ${0} (start|stop|restart|status|reload)"
;;
esac
fi