我正在编写在Linux上运行的Python应用程序。我希望能够注册并通过插入/拔出网络电缆并由通知系统。

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

我在Windows WMI上阅读了很多提供此功能的文章,但在Linux上却没有。我在朝正确的方向看吗?

一种实现此目的的python方法(python库)将是理想的,因为我想将此与我的程序集成在一起。

最佳答案

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

但是,对于一种通知(即不轮询自己)此类事件的方法,在Ubuntu上最好的选择是使用netplug软件包。默认情况下未安装它,您需要:
须藤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脚本,因此可以为您的应用程序生成事件。

关于python - 在Linux中的 “Ethernet cable plugged in”事件上得到通知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7101297/

10-10 14:08