在linux中的“以太网电缆插入”事件中获得通知

时间:2011-08-18 01:08:23

标签: python linux dbus ethernet udev

我正在编写一个在linux上运行的Python应用程序。如果网络电缆已插入/拔出,我希望系统能够注册并通知

我已经使用pyUdev(用于libUdev的python绑定)以获得USB插件事件的通知。但是,因为网络eth0模块(例如)始终保持加载状态(无论是否插入电缆),我都无法获得所需的信息。它仅适用于上/下事件。

我已经在Windows WMI上阅读了很多提供此功能的帖子,但在Linux上没有。我正朝着正确的方向前进吗?

这样做的python方法(一个python库)将是理想的,因为我想将它与我的程序集成。

2 个答案:

答案 0 :(得分:1)

通过轮询获取网络接口的“UP”状态有很多方法,从简单地解析 ifconfig 输出到读取/ proc / net / ... pseudo-的状态文件。

但是,对于此类事件通知(即不自行投票)的方式,Ubuntu的最佳选择是使用 netplug 包。默认情况下不安装,您需要: sudo apt-get install netplug

有些文档在这里:http://manpages.ubuntu.com/manpages/lucid/man8/netplugd.8.html

要进行设置,您需要调整/etc/netplug/netplugd.conf和/ etc / netplug / netplug脚本。有关这些配置文件的示例,请查看http://natisbad.org/dyn-net/index.html

上的“配置netplug”部分

使用/ etc / netplug / netplug,您可以在网络出现故障时调用自己的python脚本,这样您就可以为应用程序生成类型的事件。

答案 1 :(得分:0)

您是否查看了netplugd命令,我不确定是否存在python包装器但是解析输出并不困难