diff --git a/elements/dhcp-all-interfaces/install.d/50-dhcp-all-interfaces b/elements/dhcp-all-interfaces/install.d/50-dhcp-all-interfaces index 06098735..32f6f4be 100755 --- a/elements/dhcp-all-interfaces/install.d/50-dhcp-all-interfaces +++ b/elements/dhcp-all-interfaces/install.d/50-dhcp-all-interfaces @@ -9,5 +9,6 @@ DIB_INIT_SYSTEM=$(dib-init-system) if [ "$DIB_INIT_SYSTEM" == "upstart" ]; then install -D -g root -o root -m 0755 ${SCRIPTDIR}/dhcp-all-interfaces.conf /etc/init/dhcp-all-interfaces.conf elif [ "$DIB_INIT_SYSTEM" == "systemd" ]; then + install -D -g root -o root -m 0755 ${SCRIPTDIR}/dhcp-interface@.service /usr/lib/systemd/system/dhcp-interface@.service install -D -g root -o root -m 0644 ${SCRIPTDIR}/udev.rules /etc/udev/rules.d/99-dhcp-all-interfaces.rules fi diff --git a/elements/dhcp-all-interfaces/install.d/dhcp-interface@.service b/elements/dhcp-all-interfaces/install.d/dhcp-interface@.service new file mode 100644 index 00000000..e2643c85 --- /dev/null +++ b/elements/dhcp-all-interfaces/install.d/dhcp-interface@.service @@ -0,0 +1,15 @@ +[Unit] +Description=DHCP interface %I +After=network.service network.target + +ConditionPathExists=!/etc/sysconfig/network-scripts/ifcfg-%I + +[Service] +Type=oneshot +User=root +ExecStartPre=/usr/local/sbin/dhcp-all-interfaces.sh %I +ExecStart=/sbin/ifup %I +RemainAfterExit=true + +[Install] +WantedBy=multi-user.target diff --git a/elements/dhcp-all-interfaces/install.d/udev.rules b/elements/dhcp-all-interfaces/install.d/udev.rules index 88ce3e13..302f41ba 100644 --- a/elements/dhcp-all-interfaces/install.d/udev.rules +++ b/elements/dhcp-all-interfaces/install.d/udev.rules @@ -1 +1 @@ -SUBSYSTEM=="net", ACTION=="add", RUN+="/usr/local/sbin/dhcp-all-interfaces.sh $name", RUN+="/sbin/ifup $name" +SUBSYSTEM=="net", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="dhcp-interface@$name.service"