On 24/02/2026 00:57 EET Philip Iezzi via dovecot <dovecot@dovecot.org> wrote:
<snip/>
But, when using an absolute path on unix_listener, upgrade step 2) Bullseye=>Bookworm breaks with:
Processing triggers for dovecot-core (2:2.4.2-2+debian12) ... Job for dovecot.service failed because the control process exited with error code. (...) dovecot[34446]: master: Error: service(lmtp): Socket already exists: /var/run/dovecot/lmtp dovecot[34446]: master: Fatal: Failed to start listeners
I then moved to
unix_listener lmtp:service lmtp { unix_listener lmtp { mode = 0666 user = postfix group = postfix } }
Bookworm upgrade (restarted from scratch with a fresh server clone) went through fine. But even after several dovecot.service restarts, the socket ended up in /run/lmtp without creating the /run/dovecot directory, and after a full system reboot, it was suddenly back where I have expected it: /run/dovecot/lmtp I never changed base_dir, which defaults to /var/run/dovecot/
On most modern operating systems, /var/run and /run are the same. So unless you touched something, dovecot should always use /run/dovecot. Not sure what happened there, but I suspect you accidentically changed something.
Aki