使用 inotify 检测运行 Debian 的 SBC 上网络状态的变化?

使用 inotify 检测运行 Debian 的 SBC 上网络状态的变化?

我在小型 SBC(类似工业化 Raspberry Pi 的外形)上运行 Debian 10。我正在运行一些利用 inotify 功能的 python 程序。我想检测网络状态何时发生变化,以便我可以切换灯。我是否应该在 /sys/class/net/eth1 等文件中查找一些文件并通过通知观察更改?并以某种方式从该目录中的内容计算状态?或者有没有更好的方法来做到这一点,而不涉及轮询?

我试图从我的 mqtt 客户端连接状态推断这一点,但这反应不够灵敏,而且有时是不明确的。

systemd/networkd 是否可能提供一些钩子来实现这一点?

答案1

只需添加post-uppost-down节:

iface eth0 inet .....
    post-up   /path/to/my/super/up-script.sh
    post-down /path/to/my/super/down-script.sh

相关内容