On 3/20/21 6:09 AM, [email protected] wrote:
When I don't specify an IP address, cyrus-imapd starts correctly on a
server reboot.
When I specify IP / protocol:
|imap cmd="imapd" listen="192.168.1.230:imap" prefork=5 proto=tcp4|
cyrus-imapd tries to bind to those before it is available, and fails:
Mar 20 20:53:31 emp87 cyrus/master[973]: unable to bind to imap/ipv4 socket:
Cannot assign requested address
Mar 20 20:53:31 emp87 cyrus/master[973]: unable to create imap listener socket:
Cannot assign requested address
Restarting the service and all is good.
I can put After=network-online.target in the service description, but
seems odd that I have to... any other suggestions?
You've got the correct answer right there;
"After=network-online.target". When you don't specify a bind address,
cyrus uses 0.0.0.0, initially getting just 127.0.0.1. As any new
interfaces come online, it will bind to them. But if you give it a
specific IP, and that IP isn't available, cyrus exits. Had you also
given it 127.0.0.1, that might have worked, but I've not tried it.
FWIW, my Debian-based service unit has this: After=local-fs.target
network.target
which seems correct to me.
Cheers,
-nic
--
Nic Bernstein [email protected]
https://www.nicbernstein.com
https://www.linkedin.com/in/nic-b-26577a178/
------------------------------------------
Cyrus: Info
Permalink:
https://cyrus.topicbox.com/groups/info/Te727080483918be4-M8c48cf4685cf355a042e8b4c
Delivery options: https://cyrus.topicbox.com/groups/info/subscription