Выполните некоторые операции, как только eth0 будет запущен

Выполните некоторые операции, как только eth0 будет запущен

Мне нужно выполнить процедуру, которая требует, чтобы eth0 был запущен. Я пытался поместить ее в /etc/rc.local, но она не могла быть запущена, так как eth0 мог быть еще не инициализирован.

Есть ли способ подключиться к диспетчеру событий системы, чтобы запустить скрипт сразу после обнаружения активности eth0?

решение1

Насколько мне известно, вам необходимо поместить свой скрипт в /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

Связанный контент