Я использую набор серверов на основе Debian Jessie и мне нужен надежный способ загрузить их локальный сетевой IP-адрес, когда сетевое соединение установлено. Я написал скрипт, который делает это, и зарегистрировал его как сервис 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
Увы, если бы это работало, как ожидалось, это не был бы вопрос о SO. Сценарий использует команду route
для определения сетевого устройства, используемого по умолчанию, но не запускается из-за выхода из-за того, что сеть еще не подключена. Кроме того, система может загружаться без подключения к сети и подключаться только позже, поэтому сценарий должен запускаться при каждом запуске сети.
Сеть настроена с использованием systemd-networkd.
Как я могу убедиться, что мой скрипт запускается всякий раз, когда работает сеть, а не раньше?