"Mainly I need to know the difference between obtaining an eth0 interface for the first time after booting with no network, and restarting the network to re-obtain an eth0 interface after one used to be previously established. The code works for the latter."
Antes de abordar dessa maneira, descarte as manobras do serviço de rede de alto nível ("NetworkManager"). Eu sempre desabilito e coloco comandos no processo de inicialização em algum ponto apropriado (por exemplo, ifconfig eth0 up && dhclient eth0
), então manualmente executo outros scripts simples para alternar de eth para wifi etc. O NetworkManager é um polvo gigante de automação que é sem dúvida muito útil se você não sabe o que é uma "interface" ou está dirigindo com um laptop tentando se movimentar em redes Wi-Fi, mas se você preferir apenas ligar e desligar as coisas sozinho, ele pode fazer escolhas irritantes e misteriosas. Admito que nunca aprendi a configurá-lo com base na premissa de que uma ferramenta de alto nível que é mais difícil de usar para executar uma tarefa específica do que as ferramentas de baixo nível que "gerencia" não é uma ferramenta apropriada no contexto dessa tarefa. / p>
Caso isso não esteja claro:
when I unplug the network, or unconfigure the interface, or do a sudo /etc/init.d/networking restart
/etc/init.d/networking
implica em um sistema .deb (os .rpm usam /etc/init.d/network
). Desabilite este (e / ou o serviço upstart correspondente em sistemas que usam upstart) para que ele não seja executado na inicialização e o substitua por qualquer comando simples que você precise acessar sua rede em algum momento no final do processo de inicialização . Se existir, eu também comento tudo em /etc/network/interfaces
exceto lo.
Eu normalmente não consideraria esse bom conselho distribuir para outros usuários, mas seu problema para mim é apenas gritar, "por favor, é esse polvo gigante" - que você precisa descartar antes de olhar para trás.