Linuxでイーサネットケーブルの接続/分離イベントを待っていますか?

Linuxでイーサネットケーブルの接続/分離イベントを待っていますか?

SIOCETHTOOL / ETHTOOL_GLINK ioctlを介してリンク状態をポーリングできることを知っていますが、これには状態の無限の要求が必要です。 /var/log/messagesを解析する場合も同様です。だから私の質問は、Linuxでユーザースペースのイーサネットケーブルの状態変更を待つ方法はありますか?

答え1

どうですか?ifplugd

ifplugdイーサネットデバイスを自動的に設定するLinuxデーモンです。ケーブルを接続すると自動的に設定が解除されます(ケーブルを抜いた場合)。。これは、ケーブルが実際に接続されている場合にのみインターフェイスを設定するため、オンボードネットワークアダプタを搭載したノートブックに役立ちます。

(またありますがnetplugd廃止.)

答え2

sr_の解決策は私よりも優れていますが、これらのioctlを使用するとsleepリソースへの無限の圧迫を回避できます。問題のあるリンクアップ/ダウンがあるかどうかを調べるループを作成し、どちらの場合もsleep何秒も何もしません。システムにわずかな負荷しかかからない。

関連情報