D-Bus (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи D-Bus. Дата последней синхронизации: 23 декабря 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

D-Bus — это система межпроцессного взаимодействия, реализующая шину сообщений. Она состоит из демона, который может работать как на уровне всей системы, так и для каждого пользовательского сеанса в отдельности, и набора библиотек, позволяющих приложениям использовать D-Bus.

Пакет dbus устанавливается автоматически как зависимость systemd. Шины для пользовательских сеансов запускаются автоматически.

Альтернативные реализации

dbus-broker

dbus-broker — прозрачная замена libdbus, цель которой «обеспечить высокую производительность и надежность при сохранении совместимости с эталонной реализацией D-Bus». [1]

Для запуска dbus-broker в качестве системной шины сперва отключите службу dbus.service, а затем включите службу dbus-broker.service.

Для запуска dbus-broker в качестве пользовательской шины включите пользовательскую службу dbus-broker.service.

Чтобы задействовать его для всех пользователей, включите его с опцией --global:

# systemctl --global enable dbus-broker.service

Перезагрузитесь для применения изменений.

Советы и рекомендации

Переопределение службы dbus

Вы можете переопределить службы dbus в каталоге ~/.local/share/dbus-1/services.

Если служба уже запущена, переопределение не сработает; необходимо убить существующий процесс службы.

Отладка

  • D-Feet — Простой в использовании графический инструмент отладки D-Bus. Можно использовать для проверки интерфейсов D-Bus запущенных программ и вызова методов на этих интерфейсах.
https://wiki.gnome.org/Apps/DFeet || d-feet
  • QDbusViewer — Графический отладчик D-Bus. Можно использовать для проверки служб D-Bus и вызова их методов.
https://doc.qt.io/qt-5/qdbusviewer.html || qt5-tools

Таже можно использовать команду busctl(1), которую предоставляет systemd.

Смотрите также