【问题标题】:Getting Notified on "Ethernet cable plugged in" events in linux在 Linux 中收到有关“以太网电缆已插入”事件的通知
【发布时间】:2011-08-18 01:08:22
【问题描述】:

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

我已经在使用pyUdev(libUdev 的 python 绑定)来获得 USB 插入事件的通知。但是,因为网络 eth0 模块(例如)始终保持加载状态(无论插入的电缆如何),我没有得到我需要的信息。它仅适用于 if up/down 事件。

我已经阅读了很多关于提供此功能的 Windows WMI 的帖子,但在 linux 上没有。我的方向是否正确?

执行此操作的 python 方式(python 库)将是理想的,因为我想将它与我的程序集成。

【问题讨论】:

    标签: python linux dbus ethernet udev


    【解决方案1】:

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

    但是,对于此类事件通知(即不轮询自己)的方式,您在 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 脚本,这样您就可以为您的应用程序生成您喜欢的事件。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-12-29
        • 1970-01-01
        • 2019-08-19
        • 2017-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-17
        • 1970-01-01
        相关资源
        最近更新 更多