FreeBSDの特定のインターフェースステータスについて通知を受ける方法は?
ifconfig <ifname> | grep "status: active"
正常に動作しますが、ポーリングを避け、ifup/ifdownについてできるだけ早く通知したいと思います。
devd(8)
がそのトリックを実行します。インターフェイスでLINK_UP
またはLINK_DOWN
イベントが発生した場合にアクションを実行するように設定する必要があります。 /etc/devd.conf
またはそれ以上に追加されるサンプル構成では、/etc/devd/interface.conf
を作成します。
notify 0 {
match "system" "IFNET";
match "subsystem" "(em0|em1)";
match "type" "LINK_DOWN";
action "/usr/local/sbin/notifier.sh $subsystem"
}
上記の構成は、インターフェースem0
またはem1
がダウンしたときに通知を受け取り、イベントの発生時にスクリプトを呼び出すことを前提としています。また、インターフェイス名(したがって、$subsystem
)をスクリプトに渡します。
Devd(8)を介してアップ/ダウンイベントを監視できます。 LINK_UPイベントとLINK_DOWNイベントについてはdevd.conf(5)を確認してください。