diff options
author | Simon Rettberg | 2014-01-29 18:40:30 +0100 |
---|---|---|
committer | Simon Rettberg | 2014-01-29 18:40:30 +0100 |
commit | fe1be18c425a9f47013950b004819b7321550616 (patch) | |
tree | f952dc9690a52e062a136f82a69439eefbcae334 /remote/rootfs/rootfs-stage32 | |
parent | [rootfs-stage32] change dep of setup-partitions from (diff) | |
download | tm-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')
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 + |