使用 dbus-send 调用方法

问题描述 投票:0回答:1

我使用 dbus-monitor 捕获了一些 d-bus 方法。

method call time=1705508504.541036 sender=:1.322 -> destination=:1.334 serial=81 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem; member=ContextMenu

使用GUI工具qdbusviewer,我可以成功运行这个方法。 但是当我尝试使用 dbus-send 命令时,出现错误:

[ntfs@ntfs-a320mh ~]$ dbus-send --system --type=method_call --print-reply  --dest=:1.334 /StatusNotifierItem org.kde.StatusNotifierItem.ContextMenu
Error org.freedesktop.DBus.Error.ServiceUnknown: The name :1.334 was not provided by any .service files
[ntfs@ntfs-a320mh ~]$

目标“1.334”是动态创建的,因此 /usr/share/dbus-1/ 中确实没有服务文件

有没有办法调用该方法?

dbus
1个回答
0
投票

错误消息的意思是“此总线上不存在这样的目的地”,这是因为您尝试在错误的总线上发送消息。

“StatusNotifier”看起来像是本质上特定于会话的东西 – 不是您在全局系统总线上找到的东西 – 因此您需要通过

--session
总线发送调用。

© www.soinside.com 2019 - 2024. All rights reserved.