aboutsummaryrefslogtreecommitdiffstats
path: root/main/dovecot/dovecot.initd
diff options
context:
space:
mode:
authorValery Kartel <valery.kartel@gmail.com>2016-04-04 10:08:06 +0300
committerNatanael Copa <ncopa@alpinelinux.org>2016-05-16 16:17:08 +0000
commit7307d5b5eb03b045960b5cf85bd98af3f7a9ab54 (patch)
tree0d1722d584271114af0d43f0c64512865ce0e6bf /main/dovecot/dovecot.initd
parentfb87e4fd62220cf107377aeb9e4e65a9a237ec7f (diff)
main/dovecot: upgrade to 2.2.23, update init and logrotate scripts
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 880a39f2542..92959c6372c 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 $?
}