Realice alguna operación tan pronto como eth0 esté activo

Realice alguna operación tan pronto como eth0 esté activo

Tengo que realizar una rutina que requiere que eth0 esté activo. Intenté ponerlo en /etc/rc.local, de todos modos no se pudo activar porque es posible que eth0 aún no se haya inicializado.

¿Hay alguna forma de conectarse al despachador de eventos del sistema para iniciar un script justo cuando se detecta que eth0 está activo?

Respuesta1

AFAIK, debes colocar tu script en /etc/network/if-up.d/el directorio:

sudo cp /path/to/your_routine /etc/network/if-up.d/

Luego agregue la siguiente línea después de definir eth0la interfaz en /etc/network/interfacesel archivo:

post-up /etc/network/if-up.d/your_routine

donde post-upel comando ejecuta el comando o el script de shell después de abrir la interfaz eth0(consulte man interfacespara obtener más información, en algún lugar de la línea 149).

A continuación se muestra un ejemplo de cómo /etc/network/interfacesdebería verse el archivo después de editarlo:

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
# ...

Después de estos cambios, reinicie el servicio de red:

sudo service networking restart

información relacionada