Я могу получить имя хоста и IP-адрес от DHCP-сервера, вызвав скрипт в каталоге /etc/dhcp/dhclient-exit-hooks.d/
, как объяснено здесь на стороне клиента.
РЕДАКТИРОВАНИЕ: Я назначил имя хоста и IP-адрес в /etc/dhcp/dhcpd.conf
на стороне сервера:
...
host slave1 {
hardware ethernet 00:50:56:89:A5:90;
fixed-address 192.168.1.100;
option host-name "slave1";
}
...
Но он остановился после установленного сетевого администратора. Я понимаю, что сетевой менеджер не вызывает скрипты в каталоге /etc/dhcp/dhclient-exit-hooks.d/
. После некоторых исследований я обнаружил, что могу запустить скрипт в каталоге /etc/NetworkManager/dispatcher.d/
, как описано здесь здесь . Я попробовал это (переместил файл, затем дал разрешения), но это не сработало. Потому что я не могу получить доступ к переменным, как $reason, $interface, hostname etc.
в этом каталоге. Я застрял здесь. Так есть ли способ получить имя хоста с DHCP-сервера через сетевой менеджер? или как запустить скрипт из каталога dhclient-exit-hooks.d
при загрузке, даже если сетевой менеджер работает?
Я искал приблизительно 8 дней для нахождения решения, но я ничего не нашел. Я разработал свой собственный метод. Это не лучший способ, но Это работает.
Первый шаг: Ubuntu всегда показывает "Ожидание сети configuraion..." и ожидает 2-минутный для передачи этого. Я изменил две строки в failsafe.conf
и отключил функции "сна" для решения этой проблемы.
* sudo nano /etc/init/failsafe.conf
...
$PLYMOUTH message –text=”Waiting for network configuration…”
#sleep 40
$PLYMOUTH message –text=”Waiting up to 60 more seconds for network…”
#sleep 59
...
117-секундный шаг: Сетевые сбои после отключают функции "сна". Я изменился rc.local
для выполнения /etc/init.d/networking restart
для конфигурирования сети правильно перед входом в систему.
* sudo nano /etc/init/rc.local
/etc/init.d/networking restart
exit 0
я надеюсь, что для кого-то будет полезно, кто столкнулся с той же проблемой.