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
Override dbus service
You can override dbus services in ~/.local/share/dbus-1/services
.
If the service is already launched, the override will not work. We must kill the existing service's process, or launch our service earlier.
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.
- QDbusViewer — GUI D-Bus debugger. Can be used to inspect D-Bus services and invoke methods on them.
You can also use busctl(1) from systemd.