> This is not equivalent to what it used to be:
> DOVECOT_CONF=/etc/dovecot/dovecot.${DOVECOT_INSTANCE}.conf ....
old init-script cuts a part of init name after last dot and think it's a
dovecot instance suffix.
if I rename my init script to something like '/etc/init.d/happy.new.fear',
it's would set DOVECOT_CONF to /etc/dovecot/dovecot.fear.conf
I think it's have no sence. I just correct an init script to find the
correct config file.
1. if we have declared non-empty DOVECOT_CONF in /etc/conf.d/${SVCNAME}, we
use it as a config file name.
2. if haven't - we use ${SVCNAME} as a name of config file.
so if the init script name is 'dovecot', the config file name would be
'/etc/dovecot/dovecot.conf' (if DOVECOT_CONF is not set)
and if the script name is 'jack.daniels' the config file name would be
'/etc/dovecot/jack.daniels.conf' not '/etc/dovecot/dovecot.daniels.conf'
2015-12-23 8:50 GMT+02:00 Timo Teras <timo.teras@iki.fi>:
> On Wed, 23 Dec 2015 00:37:54 +0200> Valery Kartel <valery.kartel@gmail.com> wrote:>> > ---> > main/dovecot/dovecot.initd | 49> > +++++++++++----------------------------------- 1 file changed, 11> > insertions(+), 38 deletions(-)> >> > diff --git a/main/dovecot/dovecot.initd b/main/dovecot/dovecot.initd> > index 880a39f..944ff87 100644> > --- a/main/dovecot/dovecot.initd> > +++ b/main/dovecot/dovecot.initd> > @@ -1,9 +1,12 @@> > #!/sbin/openrc-run> >> > description="Secure POP3/IMAP server"> > -description_reload="Reload configuration"> > -> > +cfgfile=/etc/dovecot/${SVCNAME}.conf>> This is not equivalent to what it used to be:> DOVECOT_CONF=/etc/dovecot/dovecot.${DOVECOT_INSTANCE}.conf> or> DOVECOT_CONF=/etc/dovecot/dovecot.conf>> I wonder if this is acceptable.>> Otherwise it looks good to me. But should probably also be flattened to> the dovecot upgrade commit.>> Thanks.>> > +pidfile=$(/usr/bin/doveconf -c $cfgfile -h base_dir> > 2>/dev/null)/master.pid +command=/usr/sbin/dovecot> > +required_files=$cfgfile> > extra_started_commands="reload"> > +description_reload="Reload configuration"> >> > depend() {> > need localmount net> > @@ -12,46 +15,16 @@ depend() {> > 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}"> > - eend $?> > -}> > -> > -stop() {> > - checkconfig || return 1> > - ebegin "Stopping ${SVCNAME}"> > - start-stop-daemon --stop --exec /usr/sbin/dovecot --pidfile> > "${DOVECOT_PIDFILE}" +start_pre() {> > + ebegin> > + [ "$cfgfile" = "/etc/dovecot/dovecot.conf" ] ||> > command_args="-c $cfgfile"> > + checkpath --directory ${pidfile%/*}> > + $command $command_args -a > /dev/null> > 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}"> > + start_pre && start-stop-daemon --signal HUP --exec $command> > --pidfile $pidfile eend $?> > }>>