
私は 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 を使用して設定されます。
ネットワークが起動するたびにスクリプトが実行され、それ以前には実行されないようにするにはどうすればよいですか?