
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 eth0
a interface no /etc/network/interfaces
arquivo:
post-up /etc/network/if-up.d/your_routine
onde post-up
o comando executa o comando ou script de shell após abrir a interface eth0
(veja man interfaces
para mais informações - em algum lugar na linha 149).
Aqui está um exemplo de como o /etc/network/interfaces
arquivo 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