
Estou executando um conjunto de servidores baseados em Debian Jessie e preciso de uma maneira confiável de fazer upload do endereço IP da rede local quando o link de rede for estabelecido. Escrevi um script que faz isso e registrei-o como um serviço systemd:
[Unit]
Description=Server Registration
Requires=network.target network-online.target
After=network.target network-online.target
[Service]
ExecStart=<script-location>
Type=simple
Restart=on-failure
WatchdogSec=21600
[Install]
WantedBy=multi-user.target
Infelizmente, se isso estivesse funcionando como esperado, não seria uma pergunta no SO. O script utiliza o route
comando para determinar o dispositivo de rede usado por padrão, mas falha na execução porque a rota é encerrada porque a rede ainda não está ativa. Além disso, o sistema pode inicializar sem uma conexão de rede e só ser conectado mais tarde, portanto, o script precisa ser acionado sempre que a rede for ativada.
A rede é configurada usando systemd-networkd.
Como posso garantir que meu script seja executado sempre que a rede for ativada, e não antes?