如何找到哪个可执行文件提供了 dbus 服务?

如何找到哪个可执行文件提供了 dbus 服务?

我在 Lubuntu 上使用 kdeconnect 时遇到了问题,当我执行守护进程时看到的唯一错误--replace是无法启动 kuiserver:

Couldn't start kuiserver from org.kde.kuiserver.service: QDBusError("org.freedesktop.DBus.Error.ServiceUnknown", "The name org.kde.kuiserver was not provided by any .service files")

有它qdbusviewer列表中在我的主要安装上(这是一台独立的机器)但找不到它来自哪个包,哪个文件提供这项服务。有没有这样命名的文件我甚至无法grep kuiserver -ri在选择的系统目录中找到任何东西。

请注意,理想情况下答案应该是通用的,因为我不仅对解决这个特定问题感兴趣,而且对学习如何解决一般问题感兴趣。

有问题的系统是 20.04,但问题本身与 20.04 无关,因此没有标签。plasma-workspace软件包不提供此服务,我尝试在 Lubuntu 上安装,然后重新启动。

答案1

您可以获取拥有 DBus 套接字的进程的 PID:

dbus-send --session --print-reply --dest=org.freedesktop.DBus / org.freedesktop.DBus.GetConnectionUnixProcessID string:org.kde.kuiserver

然后当你有PID时,只需ps -fp PID

备用:

"kuiserver"在 /usr/bin 中查找字符串:

for exe in /usr/bin/*; do sudo strings -f "$exe"; done | grep "kuiserver"

(需要 sudo 是因为您的用户可能没有许多可执行文件的读取权限)

grep为了更加具体,你也可以"org.kde.kuiserver.service"


虽然您可以安全地忽略 kuiserver 错误,但它不会影响 KDE Con​​nect。

答案2

不管其他答案怎么说不是需要 plasmashell 才能使用 KDE Con​​nect。

TL;DR 你可以忽略该错误

kuiserver 为 KDE Con​​nect 等应用程序提供了一种向 Plasma 报告作业(如文件传输)进度的方法。然后 Plasma 会在面板中嵌入一个进度条。

当 kuiserver 不可用时,即不使用 Plasma 时,KDE Con​​nect 会回退到在独立窗口中显示传输进度。虽然不如集成到 Plasma 中的进度条美观,但功能齐全。

来源:我是 KDE Con​​nect 和 Plasma 开发人员

相关内容