D-Bus - 调用远程过程时遇到“ServiceUnknown”异常

Posted

技术标签:

【中文标题】D-Bus - 调用远程过程时遇到“ServiceUnknown”异常【英文标题】:D-Bus - 'ServiceUnknown' exception encountered while calling a remote procedure 【发布时间】:2019-05-11 14:46:39 【问题描述】:

我正在尝试从我自己的程序中调用 Thunar 文件管理器的远程过程 DisplayFolderAndSelect()

import dbus
bus = dbus.SessionBus()
obj = bus.get_object('org.xfce.Thunar', '/org/xfce/FileManager')
iface = dbus.Interface(obj, 'org.xfce.FileManager')
_thunar_display_folder_and_select = iface.get_dbus_method('DisplayFolderAndSelect')
_thunar_display_folder_and_select('~/Downloads/', 'doc.pdf', '', '')

但是我在运行时遇到了以下异常:

Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件“/usr/lib/python2.7/dist-packages/dbus/proxies.py”, 第 70 行,在 调用 返回 self._proxy_method(*args, **keywords) 文件“/usr/lib/python2.7/dist-packages/dbus/proxies.py”,第 145 行,在 致电 **关键字)文件“/usr/lib/python2.7/dist-packages/dbus/connection.py”,第 651 行,在 call_blocking 消息,超时)dbus.exceptions.DBusException:org.freedesktop.DBus.Error.ServiceUnknown:名称:1.576 不是 由任何 .service 文件提供

我无法理解这个异常是什么意思。异常背后的原因是什么。

有什么想法吗?

【问题讨论】:

【参考方案1】:

我认为是操作系统相关的问题,重启 D-Bus 服务即可解决问题

【讨论】:

以上是关于D-Bus - 调用远程过程时遇到“ServiceUnknown”异常的主要内容,如果未能解决你的问题,请参考以下文章

.Service 文件 D-Bus

远程启动应用程序时在 Linux 上共享 D-BUS 消息总线

使用 Golang 启动 D-Bus 服务

Service Mesh - gRPC 本地联调远程服务

什么是 D-Bus 对象树?

Corba(例如 TAO)、Thrift、D-Bus、ICE 等框架的进程调用性能