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.
60 lines
1.5 KiB
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
|
|
}
|