Files
poky/meta/recipes-connectivity/dhcp/files/dhclient-systemd-wrapper
Chen Qi 695b3fa02e dhcp: add dhclient.service
Add dhclient.service. This service file mainly comes from meta-systemd,
with modifications to take nfs boot into consideration.

While using eth0 as the nfsboot interface, we'd like dhclient service
to skip it like what ifup and connman do in sysvinit.

(From OE-Core rev: faa8d0f5e8db4a99367d42ba8c8de5b2e339d8d2)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-24 09:13:30 +01:00

966 B

#!/bin/sh

In case the interface is used for nfs, skip it.

nfsroot=0 interfaces="" exec 9<&0 < /proc/mounts while read dev mtpt fstype rest; do if test $mtpt = "/" ; then case $fstype in nfs | nfs4) nfsroot=1 nfs_addr=echo $rest | sed -e 's/^.*addr=\([0-9.]*\).*$/\1/' break ;; *) ;; esac fi done exec 0<&9 9<&-

if [ $nfsroot -eq 0 ]; then interfaces="$INTERFACES" else if [ -x /bin/ip -o -x /sbin/ip ] ; then nfs_iface=ip route get $nfs_addr | grep dev | sed -e 's/^.*dev \([-a-z0-9.]*\).*$/\1/' fi for i in $INTERFACES; do if test "x$i" = "x$nfs_iface"; then echo "dhclient skipping nfsroot interface $i" else interfaces="$interfaces $i" fi done fi

if test "x$interfaces" != "x"; then /sbin/dhclient -d -cf /etc/dhcp/dhclient.conf -q -lf /var/lib/dhcp/dhclient.leases $interfaces fi