X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=dovecot.init;h=4b1c3be9c857918065ec3ad3e956af5dfa2d3cc4;hb=3d9842304cdbe6c295908b0bba81c0549027e3af;hp=a05390d280f798b45ccf6a575825aa2fb0196f2a;hpb=b9e08f0fd0fbc19f1977b938250ef68a8e9757cc;p=packages%2Fdovecot.git diff --git a/dovecot.init b/dovecot.init index a05390d..4b1c3be 100644 --- a/dovecot.init +++ b/dovecot.init @@ -23,45 +23,83 @@ else exit 0 fi -RETVAL=0 -# See how we were called. -case "$1" in - start) +if [ -n "${DOVECOT_CONF}" ]; then + if [ -f "${DOVECOT_CONF}" ]; then + DOVECOT_CFG="-c ${DOVECOT_CONF}" + else + echo "error: DOVECOT_CONF='$DOVECOT_CONF': not a file" + exit 1 + fi +fi + +start() { # Check if the service is already running? if [ ! -f /var/lock/subsys/dovecot ]; then msg_starting "Dovecot" - daemon /usr/sbin/dovecot + daemon /usr/sbin/dovecot $DOVECOT_CFG RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot else msg_already_running "Dovecot" fi - ;; - stop) - if [ -f /var/lock/subsys/dovecot ]; then +} + +stop() { + if [ -f /var/lock/subsys/dovecot ]; then msg_stopping "Dovecot" - killproc dovecot + killproc --pidfile dovecot/master.pid dovecot rm -f /var/lock/subsys/dovecot else msg_not_running "Dovecot" fi +} + +reload() { + if [ -f /var/lock/subsys/dovecot ]; then + msg_reloading dovecot + killproc --pidfile dovecot/master.pid docevot -HUP + RETVAL=$? + else + msg_not_running "Dovecot" + RETVAL=7 + fi +} + +condrestart() { + if [ -f /var/lock/subsys/dovecot ]; then + stop + start + else + msg_not_running "Dovecot" + RETVAL=$1 + fi +} + +RETVAL=0 +# See how we were called. +case "$1" in + start) + start ;; - restart|force-reload) - $0 stop - $0 start - exit $? + stop) + stop ;; - reload) - msg_reloading "Dovecot" - killproc dovecot -HUP - exit $? + restart) + stop + start + ;; + try-restart) + condrestart 0 + ;; + reload|force-reload) + reload ;; status) status dovecot exit $? ;; *) - msg_usage "$0 {start|stop|reload|restart|force-reload|status}" + msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}" exit 3 esac