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

Reply via email to