私は組み込みデバイスを持っていますが、ローカルネットワークに接続されている場合はsystemd-networkdでDHCPサーバーに接続し、そうでない場合はDHCPサーバーに戻ります。まだ実装していませんが、ここで説明されている回答を使用する予定です。https://unix.stackexchange.com/a/309046/114497。
この回答では、起動時に開始されるスクリプトの使用を指摘しています。実行時にユーザーがネットワーク ケーブルを抜いて PC に接続した場合、スクリプトを開始するためにボードを再起動する必要があるのではないかと思いました。そこで質問です。systemd でインターフェイスが変更されたときにスクリプトを開始する方法はあるのでしょうか?
PS: 使ってみましたネットワークディスパッチャ成功しませんでした。systemd-networkd
サービスを再起動したり、イーサネット ケーブルを取り外したりしてみましたが、私が書いたスクリプト/usr/lib/networkd-dispatcher
は実行されません。
答え1
これ答えネットワークが変更されたときに systemd で何ができるかを説明します...
代替ソリューションは多数ありますが、systemdのみを使用した直接的なシンプルなソリューションは2019年6月時点では実装されていません。
答え2
net-o-matic
現在 を監視している私のスクリプトをDOWN
を探すように適応させることができますUP
。エントリから開始します@reboot
root
crontab
。
私はこれを支援する bash スクリプトを作成しました。https://github.com/waltinator/net-o-matic
このスクリプトは接続を監視し、接続が切断されると、ユーザーが指定した操作を実行して再接続を試みます。