I have a debian package that I'm running on startup.
I'm using upstart and I think I need to add a dependency to the upstart config:
start on someProgram
I'm not sure which program, but I'm not using
network-manager, it's disabled. I'm doing something like this:
ethernet=$(ifconfig -a | grep Ethernet | grep ^e | cut -d' ' -f1) wifi=$(ifconfig -a | grep wl | cut -d' ' -f1) ping -I $ethernet -c 1 18.104.22.168 \ || ping -I $wifi -c 1 22.214.171.124 \ || echo "not online"
ifconfig doesn't always show the
$wifi interface because the program has turned on too early in the startup process.
ping -I $ethernet -c 1 126.96.36.199 fails when it should succeed.
If I do
sleep 30 then
ping it works fine.
Does anyone know what package I should be waiting for to get this to work as expected?
I'm using Ubuntu 14.04 on an embedded device.
3.0.36+ #16 SMP PREEMPT Tue Oct 31 19:17:57 EDT 2017 armv7l armv7l armv7l GNU/Linux
I thought I had an answer:
I'm finding that the network interfaces can be referenced directly instead of a package:
start on (local-filesystems and net-device-up IFACE!=lo)
I'd still like to improve it slightly for my case.
Since I'd rather wait for wlan than eth but I'm not sure if I can use a wild card like:
But it seems this doesn't wait for the interface to be available to
ifconfig instead it waits for that interface to have an active Internet connection.