aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extra/dovecot/dovecot.initd64
1 files changed, 40 insertions, 24 deletions
diff --git a/extra/dovecot/dovecot.initd b/extra/dovecot/dovecot.initd
index 24201eeecb..d9799c0dce 100644
--- a/extra/dovecot/dovecot.initd
+++ b/extra/dovecot/dovecot.initd
@@ -1,41 +1,57 @@
#!/sbin/runscript
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Header: /var/www/viewcvs.gentoo.org/raw_cvs/gentoo-x86/net-mail/dovecot/files/dovecot.init-r2,v 1.1 2008/11/03 17:22:59 wschlich Exp $
-# Sample init.d file for alpine linux.
-
-NAME=dovecot
-DAEMON=/usr/sbin/$NAME
-USER=dovecot
-group=dovecot
+opts="reload"
depend() {
- need net
+ need localmount net
+ after bootmisc 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
+ DOVECOT_BASEDIR=$(/usr/sbin/dovecot -c ${DOVECOT_CONF} -a | sed -ne '/^base_dir/{s#^base_dir:[[:space:]]*\(.*[^/]\)/\?$#\1#;p}')
+ DOVECOT_BASEDIR=${DOVECOT_BASEDIR:-/var/run/dovecot}
+ DOVECOT_PIDFILE=${DOVECOT_BASEDIR}/master.pid
+ if [ ! -d "${DOVECOT_BASEDIR}" ]; then
+ ebegin "Creating missing base_dir ${DOVECOT_BASEDIR}"
+ install -d -o root -g root -m 0755 "${DOVECOT_BASEDIR}"
+ eend $?
+ fi
}
start() {
- ebegin "Starting ${NAME}"
- start-stop-daemon --start --quiet --background \
- --make-pidfile --pidfile /var/run/${NAME}.pid \
- --chuid ${USER}:${GROUP} \
- --exec ${DAEMON} -- ${OPTS}
+ checkconfig || return 1
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --exec /usr/sbin/dovecot \
+ --pidfile "${DOVECOT_PIDFILE}" -- -c "${DOVECOT_CONF}"
eend $?
}
stop() {
- ebegin "Stopping ${NAME}"
- start-stop-daemon --stop --quiet \
- --exec ${DAEMON} \
- --pidfile /var/run/${NAME}.pid \
+ checkconfig || return 1
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --exec /usr/sbin/dovecot \
+ --pidfile "${DOVECOT_PIDFILE}"
eend $?
}
reload() {
- ebegin "Reloading ${NAME}"
- if ! service_started "${NAME}" ; then
- eend 1 "${NAME} is not started"
- return 1
- fi
- start-stop-daemon --stop --oknodo --signal HUP \
- --exec ${DAEMON} --pidfile /var/run/${NAME}.pid
+ checkconfig || return 1
+ ebegin "Reloading ${SVCNAME} configs and restarting auth/login processes"
+ start-stop-daemon --stop --oknodo --exec /usr/sbin/dovecot \
+ --pidfile "${DOVECOT_PIDFILE}" --signal HUP
eend $?
}
-