rspamd/centos/sources/rspamd.init
2018-08-07 14:15:22 +01:00

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