Я должен выполнить процедуру, которая требует, чтобы eth0 был активным. Я попытался поместить его в /etc/rc.local, в любом случае он не мог быть запущен, так как eth0 еще не мог быть инициализирован.
Есть ли способ присоединиться к системному диспетчеру событий, чтобы запускать сценарий именно тогда, когда обнаружено, что eth0 работает?
AFAIK, Вы должны для размещения сценария в /etc/network/if-up.d/
каталог:
sudo cp /path/to/your_routine /etc/network/if-up.d/
Затем добавляют следующую строку после определения eth0
интерфейс в /etc/network/interfaces
файл:
post-up /etc/network/if-up.d/your_routine
, где post-up
команда выполнения команды или сценарий оболочки после обеспечения интерфейса eth0
(см. man interfaces
для большего количества информации - где-нибудь в строке 149).
Вот пример о том, как /etc/network/interfaces
файл должен заботиться о Вас, отредактировал его:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
name Ethernet LAN card
address 192.168.10.1
netmask 255.255.255.0
broadcast 192.168.10.255
network 192.168.10.0
gateway 192.168.10.254
post-up /etc/network/if-up.d/your_routine
# some more interfaces
auto eth1
iface eth1 inet dhcp
# ...
После этих изменений, перезапустите сетевой сервис:
sudo service networking restart