You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
#!/bin/bash |
|
# run dhclient.d scripts in an emulated environment |
|
|
|
PATH=/bin:/usr/bin:/sbin |
|
SAVEDIR=/var/lib/dhclient |
|
ETCDIR=/etc/dhcp |
|
interface=$1 |
|
|
|
eval "$( |
|
declare | LC_ALL=C grep '^DHCP4_[A-Z_]*=' | while read -r opt; do |
|
optname=${opt%%=*} |
|
optname=${optname,,} |
|
optname=new_${optname#dhcp4_} |
|
optvalue=${opt#*=} |
|
echo "export $optname=$optvalue" |
|
done |
|
)" |
|
|
|
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network |
|
|
|
[ -f /etc/sysconfig/network-scripts/ifcfg-$interface ] && \ |
|
. /etc/sysconfig/network-scripts/ifcfg-$interface |
|
|
|
if [ -d $ETCDIR/dhclient.d ]; then |
|
for f in $ETCDIR/dhclient.d/*.sh; do |
|
if [ -x $f ]; then |
|
subsystem="${f%.sh}" |
|
subsystem="${subsystem##*/}" |
|
. ${f} |
|
if [ "$2" = "up" ]; then |
|
"${subsystem}_config" |
|
elif [ "$2" = "dhcp4-change" ]; then |
|
if [ "$subsystem" = "chrony" -o "$subsystem" = "ntp" ]; then |
|
"${subsystem}_config" |
|
fi |
|
elif [ "$2" = "down" ]; then |
|
"${subsystem}_restore" |
|
fi |
|
fi |
|
done |
|
fi
|
|
|