On FreeBSD, you can use devd to trigger scripts that react to device state changes. For instance, you plug/remove a device, or you connect/disconnect an Ethernet cable.
I had to use this kind of rule to restart a service when an interface is reconnected. However the rule would not trigger when the cable was reconnected.
The reason was that default rules in
/etc/devd.conf were failing, hence stopping the execution of the next rules. In particular
service dhclient quietstart $subsystem".
The solution was either to comment these lines in
devd.conf or give my custom devd configuration a higher priority.