diff --git a/build_debian.sh b/build_debian.sh index d79a05275b1..e113e692510 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -240,6 +240,7 @@ iface eth0 inet dhcp EOF sudo cp files/dhcp/rfc3442-classless-routes $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d +sudo cp files/dhcp/sethostname $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/ if [ -f sonic_debian_extension.sh ]; then ./sonic_debian_extension.sh $FILESYSTEM_ROOT diff --git a/files/dhcp/sethostname b/files/dhcp/sethostname new file mode 100644 index 00000000000..81bd458935f --- /dev/null +++ b/files/dhcp/sethostname @@ -0,0 +1,20 @@ +#!/bin/bash +# This script is to update hostname of the system. + +if [ "$reason" != BOUND ] && [ "$reason" != RENEW ] \ + && [ "$reason" != REBIND ] && [ "$reason" != REBOOT ] +then + exit 0 +fi + +current_host_name=`hostname -s` + +if [ "$current_host_name" != "$new_host_name" ] +then + echo $new_host_name > /etc/hostname + line_to_replace=`grep 127.0.0.1.*$current_host_name /etc/hosts` + new_line=`echo $line_to_replace | sed "s/$current_host_name/$new_host_name/"` + sed -i "s/$line_to_replace/$new_line/" /etc/hosts + + hostname -F /etc/hostname +fi