Execute alguma operação assim que a eth0 estiver ativa

Execute alguma operação assim que a eth0 estiver ativa

Eu tenho que executar uma rotina que exige que a eth0 esteja ativa. Tentei colocá-lo em /etc/rc.local, mas de qualquer forma ele não pôde ser acionado porque a eth0 ainda não foi inicializada.

Existe uma maneira de anexar ao despachante de eventos do sistema para iniciar um script apenas quando a eth0 for detectada?

Responder1

AFAIK, você deve colocar seu script no /etc/network/if-up.d/diretório:

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

Em seguida, adicione a seguinte linha após definir eth0a interface no /etc/network/interfacesarquivo:

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

onde post-upo comando executa o comando ou script de shell após abrir a interface eth0(veja man interfacespara mais informações - em algum lugar na linha 149).

Aqui está um exemplo de como o /etc/network/interfacesarquivo deve ficar depois de editado:

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

Após essas alterações, reinicie o serviço de rede:

sudo service networking restart

informação relacionada