【发布时间】:2022-02-03 08:05:30
【问题描述】:
我正在构建一个通用 DBus 代理接收器,用户可以利用它来配置通用信号侦听器并将它们代理到另一个服务。
因此,我需要能够收听所有总线信号:
from dbus import SessionBus
def handler(*args, **kwargs):
print(args, kwargs)
# ...
bus = SessionBus()
bus.add_signal_receiver(handler, signal_name=None, dbus_interface=None, path=None)
这种方法的问题是我无法从处理程序的args 和kwargs 告诉哪个接口/信号名称/路径与信号相关联:
args=(dbus.String(':1.22395'), dbus.String(''), dbus.String(':1.22395')) kwargs={}
是否有一种简单的方法来检查 DBus 以获取有关接收信号的更多信息?我想它应该存在(dbus-monitor --monitor 做的事情或多或少与我正在尝试做的事情相同),但我在网上找不到任何参考资料。
【问题讨论】: