ネットワークインターフェイスが開いたり閉じたりすると、Systemdサービスが実行されます(eth0)。

ネットワークインターフェイスが開いたり閉じたりすると、Systemdサービスが実行されます(eth0)。

eth0が起動/中断されるたびにシステムサービスを実行したいと思います(別の稼働/中断サービスかもしれません)。この値は、イーサネットが接続されているときに変更する必要があります。誰でもこれを達成する方法を知っていますか?

X秒ごとにポーリングするbashスクリプトを書くことができますが、それはおそらく私が望むよりも多くのCPUを消費し、実装がきれいではないかもしれません。

どんな提案でも歓迎します。ありがとうございます!

ベストアンサー1

イーサネット稼働/中断イベント(およびその他)は、netlinkソケットを介してカーネルによって報告されます。ip monitorポーリングを避けるために、シェルスクリプトで使用できるメッセージを使用してメッセージを表示できます。

また、Debianには少なくとも1つのパッケージがあることがわかりました。ネットワークプラグは、netlinkメッセージを受信し、リンクの追加、アップリンク、およびダウンリンクでシェルスクリプトを実行するデーモンプロセスです。その後、シェルスクリプトを使用してsystemctlデバイスを起動/停止できます。

(おそらく、ネットワーク管理者とsystemd-networkdもこれらのイベントを受け取り、スクリプトをリンクする方法があるかもしれませんが、使用していないようです)。

おすすめ記事