Execute alguma operação assim que eth0 estiver ativo

2

Eu tenho que executar uma rotina que requer que o eth0 esteja ativo. Eu tentei colocá-lo em /etc/rc.local, de qualquer forma ele não pode ser acionado, pois o eth0 ainda não foi inicializado.

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

    
por Phate 03.06.2014 / 11:38

1 resposta

2

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

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

Em seguida, adicione a seguinte linha depois de definir eth0 interface em /etc/network/interfaces file:

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

onde post-up comando executa o comando ou script de shell depois de trazer a interface eth0 up (consulte man interfaces para obter mais informações - em algum lugar na linha 149).

Aqui está um exemplo sobre como o arquivo /etc/network/interfaces deve ficar depois de editá-lo:

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
    
por Radu Rădeanu 03.06.2014 / 11:58