e NetworkManager *** 连接的 dbus 信号处理程序
Posted
技术标签:
【中文标题】e NetworkManager *** 连接的 dbus 信号处理程序【英文标题】:dbus signal handler for e NetworkManager *** connection 【发布时间】:2011-05-23 01:24:08 【问题描述】:我需要开发一些在建立 *** 连接时执行的 python 代码,*** 由 NetworkManager 控制,我正在尝试弄清楚如何为此使用 NM DBUS 事件。
使用“dbus-monitor --system”我能够识别连接信号:
signal sender=:1.1 -> dest=(null destination) serial=464 path=/org/freedesktop/NetworkManager/ActiveConnection/3; interface=org.freedesktop.NetworkManager.***.Connection; member=PropertiesChanged
array [
dict entry(
string "***State"
variant uint32 5
)
dict entry(
string "State"
variant uint32 2
)
]
现在我需要识别相应的信号处理程序调用签名:
bus.add_signal_receiver(
handler_name_in_your_program,
"signal_name",
"interface_name",
"connection_name",
"object_name"
)
有人可以帮我将 dbus-monitor 跟踪输出转换为总线信号处理程序的相应函数值吗?
【问题讨论】:
【参考方案1】:我想通了:
def ***_connection_handler(*args, **keywords):
state = args[0].get('State',0)
if state == 2:
# On connect code goes here
system_bus.add_signal_receiver(***_connection_handler,
dbus_interface="org.freedesktop.NetworkManager.***.Connection",
signal_name="PropertiesChanged")
【讨论】:
以上是关于e NetworkManager *** 连接的 dbus 信号处理程序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 dbus 和 NetworkManager 激活连接
关于Linux中网络连接配置(NetworkManager)的一些笔记
系统篇: ubuntu 18.04 不显示网络连接的解决方法
系统篇: ubuntu 18.04 不显示网络连接的解决方法
弹出界面 eth0: 错误:激活连接失败:Device not managed by NetworkManager or una