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

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи D-Bus. Дата последней синхронизации: 13 января 2024. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

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

Реализации

Arch предоставляет две реализации брокера D-Bus. Изначально при установке пакета systemd пользователю предлагается выбрать реализацию (пакет, который предоставляет dbus-units).

dbus-broker

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

Для её установки выберите dbus-broker-units в момент выбора пакета, предоставляющего dbus-units, или установите этот пакет напрямую.

Примечание: dbus-broker не поддерживает AppArmor.

Эталонная реализация

Эталонная реализация тоже официально поддерживается в Arch.

Для её установки выберите dbus-daemon-units в момент выбора пакета, предоставляющего dbus-units, или установите этот пакет напрямую.

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

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

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

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

Переопределение позволяет всегда использовать определённую службу, если у вас установлено несколько служб с одним и тем же именем шины (well-known bus name).

В качестве примера смотрите KDE Wallet#Automatic D-Bus activation.

Отладка

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

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

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