| #!/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 |