D-Bus (简体中文) - ArchWiki

Jump to content

This article or section needs expansion.

Reason: Mention disabling of dbus services through use of `systemctl mask` and overrides in `/etc/dbus-1/services` (Discuss in Talk:D-Bus (简体中文))

D-Bus 是一个为进程间通信提供简单方法的消息总线系统。它由一个可为全系统加载或是为单个用户会话加载的守护进程和一系列供应用程序使用 D-Bus 的库组成。

dbus 作为 systemd 的依赖被拉取和安装，并且用户会话总线会为每个用户自动启动。

## 替代实现

### dbus-broker

dbus-broker — A drop-in replacement for the libdbus reference implementation, which aims "to provide high performance and reliability, while keeping compatibility to the D-Bus reference implementation".

  https://github.com/bus1/dbus-broker || dbus-broker

dbus-broker — A drop-in replacement for the libdbus reference implementation, which aims "to provide high performance and reliability, while keeping compatibility to the D-Bus reference implementation".

  https://github.com/bus1/dbus-broker || dbus-broker

要将 dbus-broker 作为系统总线启用，要先禁用 `dbus.service` 然后启用 `dbus-broker.service`

要将其作为用户总线启用，可以为单个或全部用户启用`dbus-broker.service` 用户单元。

最后要重启来让这些设置生效。

## 提示与技巧

### 覆盖 dbus 服务

你可以在 `$XDG_DATA_HOME/dbus-1/services` 覆盖 dbus 服务。

如果服务已经被启动了，覆盖工作不会立即生效。必须先杀死已有的服务进程，或者更早地启动服务。

You can use this to always use a particular service when you have several installed providing the same well-known bus name.

## 调试

- D-Feet — Easy to use D-Bus debugger GUI tool. D-Feet can be used to inspect D-Bus interfaces of running programs and invoke methods on those interfaces.

  https://wiki.gnome.org/Apps/DFeet || d-feet

- QDbusViewer — GUI D-Bus debugger. Can be used to inspect D-Bus services and invoke methods on them.

  https://doc.qt.io/qt-5/qdbusviewer.html || qt5-tools

你也可以用 systemd 的 busctl(1)。

## 另见

- https://freedesktop.org/wiki/Software/dbus/
- https://freedesktop.org/wiki/IntroductionToDBus/

Category:

- System administration (简体中文)

Hidden category:

- Pages or sections flagged with Template:Expansion