
Estoy ejecutando un conjunto de servidores basados en Debian Jessie y necesito una forma confiable de cargar la dirección IP de su red local cuando se establece el enlace de red. Escribí un script que hace esto y lo registré como un servicio 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
Por desgracia, si esto funcionara como se esperaba, no sería una pregunta sobre SO. El script utiliza el route
comando para determinar el dispositivo de red utilizado de forma predeterminada, pero no se ejecuta porque la ruta sale debido a que la red aún no está activa. Además, el sistema puede iniciarse sin una conexión de red y solo conectarse más tarde, por lo que el script debe activarse cada vez que se activa la red.
La red se configura usando systemd-networkd.
¿Cómo puedo asegurarme de que mi script se ejecute cada vez que la red se active y no antes?