Как узнать, какой исполняемый файл предоставляет службу dbus?

У меня проблемы с kdeconnect на Lubuntu, и единственная ошибка, которую я вижу при запуске демона с помощью - 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 и даже перезагрузиться после этого.

2
задан 19 June 2020 в 08:26

2 ответа

Вы можете получить PID процесса, владеющего сокетом DBus:

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-standalone

org.kde.kuiserver предоставляемый plasmashell подразумевает, что вам действительно нужно запустить KDE для использования KDE Connect, чего не должно быть, так как KDE Connect предназначен для кросс-рабочего стола.

В любом случае, есть git-репо : https://github.com/sandsmark/kuiserver-standalone

Это не такОн не предоставляет много инструкций по сборке, но, исходя из пакета Arch Linux AUR kuiserver-standalone-git , вот как его собрать:

$ git clone https://github.com/sandsmark/kuiserver-standalone.git
$ cd kuiserver-standalone
$ mkdir -p build
$ cd build
$ cmake ../kuiserver-standalone \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DLIB_INSTALL_DIR=lib \
    -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
    -DBUILD_TESTING=OFF
$ make
$ sudo make install

вам понадобится build-essential, git, cmake и, возможно, различные пакеты разработчиков Qt / KDE.

1
ответ дан 19 June 2020 в 21:23

Несмотря на то, что в другом ответе говорится, что вам не нужна плазменная оболочка для использования KDE Connect.

TL;DR Вы можете игнорировать эту ошибку.

kuiserver предоставляет возможность таким приложениям, как KDE Connect, сообщать о ходе выполнения заданий (например, передачи файлов) в Plasma. Затем Plasma встраивает индикатор выполнения в панель.

Когда kuiserver недоступен, т. е. когда Plasma не используется, KDE Connect возвращается к отображению хода переноса в отдельном окне. Не так красиво, как полоса прогресса, встроенная в Plasma, но вполне функциональная.

Источник: я разработчик KDE Connect и Plasma

3
ответ дан 8 July 2020 в 17:16

Другие вопросы по тегам:

Похожие вопросы: