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? Thanks.