You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
calculate-utils-2.1-server/data/sortmilter.init

60 lines
1.5 KiB

#!/sbin/openrc-run
# Copyright 2010-2011 Mir Calculate.
# Distributed under the terms of the GNU General Public License v2
# $Header: $
depend() {
need net
}
start() {
ebegin "Starting sort-milter"
MILTERPORT=${MILTERPORT:-2525}
STORAGEDIR=${STORAGEDIR:-/var/calculate/mailbox}
DOMAIN="--domain $(echo ${DOMAIN:-maildomain.ru} | sed s'/,/ --domain /')"
ERRORDIR=${ERRORDIR:-/var/calculate/mailbox/errors}
LOGFILE=${LOGFILE:-/var/log/sortmilter.log}
PIDFILE=${PIDFILE:-/var/run/sortmilter.pid}
SORTMILTER=${SORTMILTER:-/usr/bin/sortmilter}
OPTS="${OPTS} --storage-dir=${STORAGEDIR} ${DOMAIN} \
--milter-port=${MILTERPORT} --error-dir ${ERRORDIR} \
--log ${LOGFILE}"
PSMILTER="sortmilter.*--milter-port=${MILTERPORT}"
if pgrep -f ${PSMILTER} &>/dev/null
then
eerror "sort-milter already started at PID "$(pgrep -f ${PSMILTER})
eend 1
else
eval start-stop-daemon -b --start --pidfile ${PIDFILE} --exec ${SORTMILTER} -- "${OPTS}"
for waitsec in 1 2 4
do
pgrep -f ${PSMILTER} &>/dev/null && break
sleep ${waitsec}
done
if pgrep -f ${PSMILTER} &>/dev/null
then
echo $(pgrep -f ${PSMILTER}) >${PIDFILE}
eend 0
else
eend 1
fi
fi
}
stop() {
ebegin "Stopping sort-milter"
MILTERPORT=${MILTERPORT:-2525}
PSMILTER="sortmilter.*--milter-port=${MILTERPORT}"
PIDFILE=${PIDFILE:-/var/run/sortmilter.pid}
start-stop-daemon --stop --signal 2 --quiet --pidfile ${PIDFILE}
for waitsec in 1 2 4 6 8
do
pgrep -f ${PSMILTER} &>/dev/null || break
sleep ${waitsec}
echo -en "."
done
eend 0
}