On Fri, Aug 4, 2023 at 4:32 PM Kevin P. Fleming <lists.systemd-devel@xxxxxxxxxxxxx> wrote: > > On Fri, Aug 4, 2023, at 18:11, Ross Boylan wrote: > > Theory: since br0 has no associated IP address when socket creation is > > attempted, the socket creation fails. If so, I need to delay socket > > startup until br0 has an IP4 address, but I'm not sure how to do > > that--or even if that is the problem. > > This is almost certainly the cause, and the reason that the 'FreeBind' parameter can be set in .socket files :-) Thank you, Kevin. Setting FreeBind=yes results in successful socket activation on system startup I still find the description of FreeBind on the man page puzzling: " Controls whether the socket can be bound to non-local IP addresses." But 192.168.1.10 is a local IP address, and for that matter one can only directly create sockets on the local machine. The rest of the description makes clear the option is for my case, but I don't see how that relates to the quoted sentence. Presumably the problem is the meaning of "non-local IP addresses". Can anyone explain? Did I only run into this problem because I specified a BindToDevice directive? It seemed like a good idea since there are potentially 2 interfaces the socket could attach to, either the virtual interface br0 or the actual physical network interface that requests come in on. However, as far as I can tell from `ip addr`, the IP only goes with the bridge. The message systemd[1]: Listening on Socket to tickle to update family netboot config. still occurs interspersed with kernel messages from ~2s after boot, before IP addresses are configured. Ross Current config: # /etc/systemd/system/family.socket [Unit] Description=Socket to tickle to update family netboot config [Install] WantedBy=network-online.target [Socket] ListenStream=192.168.1.10:14987 # want to run a new job, aka service, for each connection. Accept=Yes BindToDevice=br0 # must wait until it has an IP address FreeBind=true # 2s is default TriggerLimitIntervalSec=5s