143 lines
2.9 KiB
Bash
143 lines
2.9 KiB
Bash
#!/bin/sh
|
|
#
|
|
# rspamd - this script starts and stops the rspamd daemon
|
|
### BEGIN INIT INFO
|
|
# Provides: rspamd
|
|
# Required-Start: $remote_fs $network
|
|
# Required-Stop: $network $remote_fs
|
|
# Default-Start: 5
|
|
# Default-Stop:
|
|
# Short-Description: Rspamd daemon
|
|
# Description: Rspamd spam filtering daemon process
|
|
### END INIT INFO
|
|
#
|
|
# chkconfig: - 85 15
|
|
# description: rspamd is a spam filtering system
|
|
# processname: rspamd
|
|
# config: /etc/rspamd/rspamd.conf
|
|
# config: /etc/sysconfig/rspamd
|
|
# pidfile: /var/run/rspamd/rspamd.pid
|
|
|
|
# Source function library.
|
|
. /etc/rc.d/init.d/functions
|
|
|
|
# Source networking configuration.
|
|
. /etc/sysconfig/network
|
|
|
|
# Check that networking is up.
|
|
[ "$NETWORKING" = "no" ] && exit 0
|
|
|
|
rspamd="/usr/bin/rspamd"
|
|
rspamadm="/usr/bin/rspamadm"
|
|
prog=$(basename $rspamd)
|
|
|
|
RSPAMD_CONF_FILE="/etc/rspamd/rspamd.conf"
|
|
RSPAMD_USER="_rspamd"
|
|
RSPAMD_GROUP="_rspamd"
|
|
|
|
[ -f /etc/sysconfig/rspamd ] && . /etc/sysconfig/rspamd
|
|
|
|
lockfile=/var/lock/subsys/rspamd
|
|
|
|
start() {
|
|
[ -x $rspamd ] || exit 5
|
|
[ -f $rspamd_CONF_FILE ] || exit 6
|
|
echo -n $"Starting $prog: "
|
|
daemon $rspamd -c $RSPAMD_CONF_FILE -u $RSPAMD_USER -g $RSPAMD_GROUP
|
|
retval=$?
|
|
echo
|
|
[ $retval -eq 0 ] && touch $lockfile
|
|
return $retval
|
|
}
|
|
|
|
stop() {
|
|
echo -n $"Stopping $prog: "
|
|
killproc $prog -TERM
|
|
retval=$?
|
|
if [ $retval -eq 0 ]; then
|
|
if [ "$CONSOLETYPE" != "serial" ]; then
|
|
echo -en "\\033[16G"
|
|
fi
|
|
STOPTIMEOUT=30
|
|
while [ $STOPTIMEOUT -gt 0 ]; do
|
|
rh_status_q || break
|
|
sleep 1
|
|
let STOPTIMEOUT=${STOPTIMEOUT}-1
|
|
done
|
|
if [ $STOPTIMEOUT -eq 0 ]; then
|
|
echo "Timeout error occurred trying to stop Rspamd. Forcefully stop the remaining processes."
|
|
killproc $prog -KILL
|
|
# Sleep forever after SIGKILL being sent (e.g. UNINT SLEEP)
|
|
while rh_status_q
|
|
do
|
|
sleep 1
|
|
echo -n $"."
|
|
done
|
|
fi
|
|
rm -f $lockfile
|
|
fi
|
|
echo
|
|
return $retval
|
|
}
|
|
|
|
restart() {
|
|
configtest || return $?
|
|
stop
|
|
start
|
|
}
|
|
|
|
reload() {
|
|
configtest || return $?
|
|
echo -n $"Reloading $prog: "
|
|
killproc $rspamd -HUP
|
|
RETVAL=$?
|
|
echo
|
|
}
|
|
|
|
force_reload() {
|
|
restart
|
|
}
|
|
|
|
configtest() {
|
|
$rspamadm configtest -c $RSPAMD_CONF_FILE
|
|
}
|
|
|
|
rh_status() {
|
|
status $prog
|
|
}
|
|
|
|
rh_status_q() {
|
|
rh_status >/dev/null 2>&1
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
rh_status_q && exit 0
|
|
$1
|
|
;;
|
|
stop)
|
|
rh_status_q || exit 0
|
|
$1
|
|
;;
|
|
restart|configtest)
|
|
$1
|
|
;;
|
|
reload)
|
|
rh_status_q || exit 7
|
|
$1
|
|
;;
|
|
force-reload)
|
|
force_reload
|
|
;;
|
|
status)
|
|
rh_status
|
|
;;
|
|
condrestart|try-restart)
|
|
rh_status_q || exit 0
|
|
restart
|
|
;;
|
|
*)
|
|
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
|
|
exit 2
|
|
esac
|