Os arquivos em /etc/network/if-up.d
já são executados automaticamente sempre que uma interface (qualquer interface) é exibida. Quando você especifica o mesmo script para ser executado novamente em um comando explícito post-up
, você só faz com que o script seja executado novamente. Então, meu palpite é que isso deve acontecer:
- Ele é executado uma vez quando
lo
aparece (com a variável de ambienteIFACE=lo
) devido a estar localizado em/etc/network/if-up.d
. - Ele é executado uma vez quando
eth0
aparece (com a variável de ambienteIFACE=eth0
) pelo mesmo motivo. - Ele é executado novamente quando
eth0
aparece (com a variável de ambienteIFACE
unset) porque você solicitou isso em uma diretivapost-up
.
Não sei de onde vem a quarta vez, mas de qualquer forma já são três.
Você precisa localizar o script em outro lugar e executá-lo uma vez usando uma diretiva post-up
ou deixá-lo onde estiver, mas não mencioná-lo em uma diretiva post-up
e verifique o valor de $IFACE
. que não faz nada a menos que a interface desejada ( eth0
) tenha surgido.