summaryrefslogtreecommitdiffstats
path: root/remote/rootfs/rootfs-stage32
diff options
context:
space:
mode:
authorSimon Rettberg2014-01-29 18:40:30 +0100
committerSimon Rettberg2014-01-29 18:40:30 +0100
commitfe1be18c425a9f47013950b004819b7321550616 (patch)
treef952dc9690a52e062a136f82a69439eefbcae334 /remote/rootfs/rootfs-stage32
parent[rootfs-stage32] change dep of setup-partitions from (diff)
downloadtm-scripts-fe1be18c425a9f47013950b004819b7321550616.tar.gz
tm-scripts-fe1be18c425a9f47013950b004819b7321550616.tar.xz
tm-scripts-fe1be18c425a9f47013950b004819b7321550616.zip
[rfs-stage32] Add early trigger script for network targets
This service/script will try to trigger the network targets at an early point in time, if network setup succeeded in stage 31 (hostname, dns, default gateway)
Diffstat (limited to 'remote/rootfs/rootfs-stage32')
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/systemd/system/early-network-triggers.service10
l---------remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/early-network-triggers.service1
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-early_network_triggers26
3 files changed, 37 insertions, 0 deletions
diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/early-network-triggers.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/early-network-triggers.service
new file mode 100644
index 00000000..7ed6e2a6
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/early-network-triggers.service
@@ -0,0 +1,10 @@
+# This will trigger network.target etc. at an early point,
+# if network setup happened in stage31 (dhcp...)
+[Unit]
+Description=Trigger network targets early
+DefaultDependencies=no
+Before=sysinit.target
+
+[Service]
+Type=oneshot
+ExecStart=/opt/openslx/scripts/systemd-early_network_triggers
diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/early-network-triggers.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/early-network-triggers.service
new file mode 120000
index 00000000..8aec0a6d
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/early-network-triggers.service
@@ -0,0 +1 @@
+../early-network-triggers.service \ No newline at end of file
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-early_network_triggers b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-early_network_triggers
new file mode 100755
index 00000000..bc471116
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-early_network_triggers
@@ -0,0 +1,26 @@
+#!/bin/ash
+
+# This script will trigger several network targets if
+# applicable at an early point.
+# This happens if dhcp/network setup was successful in stage31
+
+# Main interface
+BRIDGE="br0"
+
+if [ ! -e "/sys/class/net/${BRIDGE}/operstate" -o "x$(cat "/sys/class/net/${BRIDGE}/operstate")" == "xup" ] && [ -e "/opt/openslx/uniontmp/etc/hostname" -o -e "/opt/openslx/uniontmp/etc/resolv.conf" ]; then
+ touch "/run/dhcpc/network-ready"
+ systemctl start network.target &
+fi
+
+if [ -s "/etc/resolv.conf" ] && grep -q "^nameserver" "/etc/resolv.conf"; then
+ touch "/run/dhcpc/dns-ready"
+ systemctl start network-dns.target &
+fi
+
+if route -n | grep -q -E '^0\.0\.0\.0.*U.*G'; then
+ touch "/run/dhcpc/routing-ready"
+ systemctl start network-gateway.target &
+fi
+
+exit 0
+