D-Bus

From ArchWiki
Jump to navigation Jump to search
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.

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

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 is a message bus system that provides an easy way for inter-process communication. It consists of a daemon, which can be run both system-wide and for each user session, and a set of libraries to allow applications to use D-Bus.

dbus is pulled and installed as a dependency of systemd and user session bus is started automatically for each user.

Alternative Implementations

dbus-broker

dbus-broker is 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". [1]

To enable dbus-broker as the system bus, first disable the dbus service and then activate the dbus-broker one:

# systemctl disable dbus.service
# systemctl enable dbus-broker.service

To enable as a user bus, run as the desired user:

$ systemctl --user enable dbus-broker.service

Or, to enable for all users, run as root:

# systemctl --global enable dbus-broker.service

Reboot for these settings to take effect.

Tips and tricks

Disable dbus service

You can override dbus services in ~/.local/share/dbus-1/services.

Debugging

  • 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

You can also use busctl(1) from systemd.

See also