diff --git a/service/dovecot/run b/service/dovecot/run index 8cbb83d..3e1f2cd 100755 --- a/service/dovecot/run +++ b/service/dovecot/run @@ -15,4 +15,11 @@ adduser -u ${VMAIL_ID} -D -s /bin/false -h ${VMAIL_HOME} ${VMAIL_USER} # useradd -u ${VMAIL_ID} -g ${VMAIL_USER} -r -m -d ${VMAIL_HOME} -s /bin/false ${VMAIL_USER} chown -Rh vmail:vmail -- ${VMAIL_HOME} +# Stolen PID race condition. +# In some cases the new process can take the same PID that is in /run/dovecot/master.pid +# this will make Dovecot think that it is already running, which is not true: +# ``Fatal: Dovecot is already running with PID 9 (read from /run/dovecot/master.pid)`` +# So remove the leftover before we start the dovecot: +rm -vf /run/dovecot/master.pid + exec /usr/sbin/dovecot -F