2

How to get informed about specific interface status in FreeBSD?

ifconfig <ifname> | grep "status: active" 

works fine but I want to avoid polling and be informed as fast as possible about ifup/ifdown.

DmitryBond
  • 23
  • 1
  • 4

2 Answers2

1

devd(8) will do the trick. You need to configure it to run an action if LINK_UP or LINK_DOWN event happened on an interface. A sample configuration to be added to /etc/devd.conf or even better, create /etc/devd/interface.conf:

notify 0 {
    match "system"        "IFNET";
    match "subsystem"     "(em0|em1)";
    match "type"          "LINK_DOWN";
    action "/usr/local/sbin/notifier.sh $subsystem"
}

Above configuration assumes that you want to be notified when interface em0 or em1 goes down, and invokes the script upon occurrence of the event. It will also pass the interface name (hence $subsystem) to the script.

0

You can monitor up/down event via devd(8). Look at devd.conf(5) for LINK_UP and LINK_DOWN events.

citrin
  • 469
  • 2
  • 5