On Sun, Nov 5, 2017 at 11:22 AM, Justin Moore <justin.nonwork(a)gmail.com> wrote:
The challenge here is that systemd considers "the network" to be up if
*any* networking devices are up. I ran into this on my MythTV setup,
where once the InfiniTV capture card was up (which uses a virtual
network interface), systemd would give the green light for every other
service to start up. Of course the virtual network interface would
always come up first since it was just a kernel module loading, and
didn't require a back-and-forth DHCP request. So bunches of services
which bind to all available interfaces at start-up would bind to
loopback and the capture card and that's it.
Per systemd this is "working as intended" because how are they
supposed to know which network interface you want?
I solved this by putting a "sleep 5" into the start of
network-online.target.
Please bottom-post.
In the networkd case, you can specify an interface
# /lib/systemd/systemd-networkd-wait-online -h
systemd-networkd-wait-online [OPTIONS...]
Block until network is configured.
-h --help Show this help
--version Print version string
-q --quiet Do not show status information
-i --interface=INTERFACE Block until at least these interfaces have appeared
--ignore=INTERFACE Don't take these interfaces into account
--timeout=SECS Maximum time to wait for network connectivity
so you can override the distribution-supplied
"systemd-networkd-wait-online.service".