aboutsummaryrefslogtreecommitdiffstats
path: root/main/dovecot/dovecot.initd
diff options
context:
space:
mode:
Diffstat (limited to 'main/dovecot/dovecot.initd')
-rw-r--r--main/dovecot/dovecot.initd59
1 files changed, 21 insertions, 38 deletions
diff --git a/main/dovecot/dovecot.initd b/main/dovecot/dovecot.initd
index 880a39f254..92959c6372 100644
--- a/main/dovecot/dovecot.initd
+++ b/main/dovecot/dovecot.initd
@@ -1,57 +1,40 @@
#!/sbin/openrc-run
+[ "${SVCNAME}" != "${SVCNAME##*.}" ] && instance=${SVCNAME##*.}
+
description="Secure POP3/IMAP server"
-description_reload="Reload configuration"
-extra_started_commands="reload"
+cfgfile=/etc/dovecot/dovecot${instance:+.$instance}.conf
+pidfile=$(doveconf -c $cfgfile -h base_dir 2>/dev/null)/master.pid
+command=/usr/sbin/dovecot
+command_args=${instance:+-c $cfgfile}
+required_files="$cfgfile"
+extra_started_commands="reload reopen"
+description_reload="Reload configuration"
+description_reopen="Reopen log files"
depend() {
need localmount net
- before exim postfix
+ before mta
after bootmisc firewall ldap mysql ntp-client ntpd postgresql saslauthd slapd
use logger
}
-checkconfig() {
- DOVECOT_INSTANCE=${SVCNAME##*.}
- if [ -n "${DOVECOT_INSTANCE}" -a "${SVCNAME}" != "dovecot" ]; then
- DOVECOT_CONF=/etc/dovecot/dovecot.${DOVECOT_INSTANCE}.conf
- else
- DOVECOT_CONF=/etc/dovecot/dovecot.conf
- fi
- if [ ! -e ${DOVECOT_CONF} ]; then
- eerror "You will need an ${DOVECOT_CONF} first"
- return 1
- fi
- if [ -x /usr/sbin/dovecot ]; then
- DOVECOT_BASEDIR=$(/usr/sbin/dovecot -c ${DOVECOT_CONF} -a | grep '^base_dir = ' | sed 's/^base_dir = //')
- else
- eerror "dovecot not executable"
- return 1
- fi
- DOVECOT_BASEDIR=${DOVECOT_BASEDIR:-/run/dovecot}
- DOVECOT_PIDFILE=${DOVECOT_BASEDIR}/master.pid
- checkpath --directory --owner dovecot:dovecot --mode 0755 \
- ${DOVECOT_BASEDIR}
-}
-
-start() {
- checkconfig || return 1
- ebegin "Starting ${SVCNAME}"
- start-stop-daemon --start --exec /usr/sbin/dovecot --pidfile "${DOVECOT_PIDFILE}" -- -c "${DOVECOT_CONF}"
+start_pre() {
+ ebegin
+ doveconf -c $cfgfile -x >/dev/null && \
+ checkpath --directory ${pidfile%/*}
eend $?
}
-stop() {
- checkconfig || return 1
- ebegin "Stopping ${SVCNAME}"
- start-stop-daemon --stop --exec /usr/sbin/dovecot --pidfile "${DOVECOT_PIDFILE}"
+reload() {
+ ebegin "Reloading ${SVCNAME} configs and restarting auth/login processes"
+ start_pre && start-stop-daemon --signal HUP --pidfile $pidfile
eend $?
}
-reload() {
- checkconfig || return 1
- ebegin "Reloading ${SVCNAME} configs and restarting auth/login processes"
- start-stop-daemon --signal HUP --exec /usr/sbin/dovecot --pidfile "${DOVECOT_PIDFILE}"
+reopen() {
+ ebegin "Reopening ${SVCNAME} log files"
+ start-stop-daemon --signal USR1 --pidfile $pidfile
eend $?
}