> On 24 Feb 2026, at 06:53, Aki Tuomi via dovecot <[email protected]> wrote:
>
>
>> On 24/02/2026 00:57 EET Philip Iezzi via dovecot <[email protected]> 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.
Thanks Aki. I know, /var/run -> /run symlink always existed (since very old
Debian versions), so that definitely did not change on Bookworm upgrade.
So it must have been some Bookworm upgrade "glitch" with /run temporarily not
being available...
Is there some code in Dovecot that decides to fall back to /run if $base_dir
(/run/dovecot) is missing? That's the only thing I really wondered about - why
dit the socket ever end up in /run/lmtp instead of /run/dovecot/lmtp ? If the
whole /run/dovecot cannot be created for some reason, Dovecot should not be
able to start.
Please just confirm that my current config is "sane":
service lmtp {
unix_listener lmtp {
mode = 0666
user = postfix
group = postfix
}
}
With this setup, am I somehow fighting against the default lmtp socket which
would already be created as root:root because of `protocols = lmtp ...`
definition?
Just want to make sure this socket will always be available, as it is the most
crucial part of my whole setup.
Cheers,
Philip
_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]