I need two services to wait until the network is fully up before I start
them. In Jessie, I made an rc.local script that pinged google 20 times
until it got a response. After that, it started the services. This seemed
to work great. I upgraded one of the systems to stretch, and the script
stopped working; or at least, I thought it did. Turns out, it just takes
longer under stretch than it did under Jessie (not sure why). Now I need
to do 30 pings to make sure its okay.
Id like a better option. I tried delaying the services until
network-online.target, but this doesnt really seem to work.
I have a 4 port LAGG (LACP / bond-mode 4) interface named bond0. It seems
to take about 45 seconds after the links come up to negotiate with the
switch. However, as soon as the network gets link active signals on the
individual links, it seems to think the network is up and starts the
services too soon. Is there something I can do to verify the LACP
negotiation is complete before starting some of my services?