wait for network before running script?
-
is it possible to detect when the network is up? I need to run a script in rc.local
but it needs to have the network connected (either Access point, or connected to my home network) first.TIA
-
@Ian-Steele you can use a hotplug script. The script gets run what x event occurs on x device. Here is an example of a hotplug script my IoT device runs when the wan inteface comes up. Note the file location.
#!/bin/bash
File: 50-ipsetup
Author: chris
Created on 24 Jun. 2019, 1:07:07 am
#!/bin/sh
Place me in /etc/hotplug.d/iface/50-ipsetup
WIFI_INTERFACE="wwan"
echo "Starting interace hotplug ${DEVICE} Action: ${ACTION} Interface: ${INTERFACE}" >> /tmp/cblog
if [ "$ACTION" = "ifup" -a "$INTERFACE" = "wwan" ]; then
echo "IFUP ${DEVICE}" >> /tmp/cblog
echo "Run ip setup script for device: ${DEVICE}" >> /tmp/cblog
echo "listen $(ip -o -4 a s apcli0 | awk '{ print $4 }' | cut -d/ -f1):80;" > /etc/nginx/listen_ip
fi
-
Thanks Chris - I was not aware of the hotplug stuff. omega2 is pretty slow to boot
up for a little openWrt device(1 min+)anyway I think I have something working so far.
-
@Ian-Steele the boot time for an Omega is effected by a range of factors, number of modules loaded, services to be started, network connection etc., sd card read, file system check etc. My Pi3 is no faster.
Adding a script to rc.local I would consider a bit of a hack, hotplug was designed for the task you asked about, but actually hotplug is deprecated in favor of udev but I haven't tried udev on Omega/OpenWrt.