service examples: if iface do not exist, retry upping it
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 5 Apr 2019 16:38:12 +0000 (18:38 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 5 Apr 2019 16:41:48 +0000 (18:41 +0200)
I've had a case of a machine where eth0 was appearing a bit later
after the boot, and appearing _downed_. ifplugd then fails to detect
"link up". Thus, depending on how service startup
("ip link set dev eth0 up") races with driver initialization,
ethernet randomly fails to initialize on boot.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
examples/var_service/dhcp_if/run
examples/var_service/dhcpd_if/run
examples/var_service/ifplugd_if/run
examples/var_service/supplicant_if/run
examples/var_service/zcip_if/run

index aec79e027849f5aad4692144a4ed34229bb51693..d8f343586b6fa6b1532249599e17298bfb7cc6c5 100755 (executable)
@@ -8,9 +8,9 @@ pwd="$PWD"
 if="${PWD##*/dhcp_}"
 
 echo "* Upping iface $if"
-ip link set dev "$if" up
+ip link set dev "$if" up || { sleep 5; exit; }
 
-echo "* Starting udhcpc"
+echo "* Starting udhcpc on $if [$$]"
 exec \
 env - PATH="$PATH" \
 softlimit \
index a603bdc7122448327fa557502766975299b1afb2..e3d1b00f4ad7ee4a6c28a094e94709eccb430cc3 100755 (executable)
@@ -8,12 +8,12 @@ pwd="$PWD"
 if="${PWD##*/dhcpd_}"
 
 echo "* Upping iface $if"
-ip link set dev $if up
+ip link set dev $if up || { sleep 5; exit; }
 
 >>udhcpd.leases
 sed 's/^interface.*$/interface '"$if/" -i udhcpd.conf
 
-echo "* Starting udhcpd"
+echo "* Starting udhcpd on $if [$$]"
 exec \
 env - PATH="$PATH" \
 softlimit \
index 5c662f29880dadcfea753bcac3784f6abe60f616..e7816619d666859f84f8916ad4e21bc3a28e7c47 100755 (executable)
@@ -9,7 +9,7 @@ pwd="$PWD"
 if="${PWD##*/ifplugd_}"
 
 echo "* Upping iface $if"
-ip link set dev "$if" up
+ip link set dev "$if" up || { sleep 5; exit; }
 
 echo "* Starting ifplugd on $if [$$]"
 exec \
index 279d18af5c99e48a60df1f10a56c9605afd26cca..bc16fb606335ece5937f424287423241983816dc 100755 (executable)
@@ -14,7 +14,7 @@ ip link set dev "$if" up || { sleep 5; exit; }
 ##echo "* Powersave disable on $if"
 ##iw dev "$if" set power_save off
 
-echo "* Starting wpa_supplicant"
+echo "* Starting wpa_supplicant on $if [$$]"
 exec \
 env - PATH="$PATH" \
 softlimit \
index 94a8754650e8c2cc22847bc877d0b8aa9306ea78..6998232461241e7e9142030281a6192d28ca23ab 100755 (executable)
@@ -8,9 +8,9 @@ pwd="$PWD"
 if="${PWD##*/zcip_}"
 
 echo "* Upping iface $if"
-ip link set dev "$if" up
+ip link set dev "$if" up || { sleep 5; exit; }
 
-echo "* Starting zcip"
+echo "* Starting zcip on $if [$$]"
 exec \
 env - PATH="$PATH" \
 softlimit \