This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
D-Bus
D-Bus is an interprocess communication (IPC) system for software applications. Software makes use of D-Bus to communicate information between services.
Installation
USE flags
Portage knows the global dbus
USE flag for enabling support for D-Bus in other packages. Enabling this flag will pull in sys-apps/dbus automatically. This is the default for desktop profiles:
/etc/portage/make.conf
Enabling D-Bus globallyUSE="dbus"
USE flags for sys-apps/dbus A message bus system, a simple way for applications to talk to each other
X
|
Add support for X11 |
debug
|
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces |
doc
|
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally |
elogind
|
Use sys-auth/elogind for session tracking. |
selinux
|
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur |
static-libs
|
Build static versions of dynamic libraries as well |
systemd
|
Build with sys-apps/systemd at_console support |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
valgrind
|
Enable annotations for accuracy. May slow down runtime slightly. Safe to use even if not currently using dev-debug/valgrind |
Emerge
After setting the dbus
global USE flag be sure to update the system using the --changed-use
option:
root #
emerge --ask --changed-use --deep @world
Configuration
Files
The main configuration files include:
- /usr/share/dbus-1/system.conf for the system bus
- /usr/share/dbus-1/session.conf for the session bus
Services
OpenRC
After configuration step, start D-Bus with:
root #
/etc/init.d/dbus start
To start D-Bus at boot time, add it the default run level:
root #
rc-update add dbus default
Even without adding D-Bus to the default runlevel it often will get started by D-Bus dependent services. This should explain why D-Bus mysteriously gets started even though it has not been formally added to a system runlevel.
Usage
Some useful commands include:
- dbus-monitor --system - To monitor the activities in the system bus.
- dbus-monitor --session - To monitor the activities in the session bus.
- dbus-send <PARAMETER> - To send a message. See the dbus-send man page (man dbus-send) for more information.
Troubleshooting
Use the dbus-monitor command to monitor the buses. Errors are also redirected to the syslog (/var/log/messages).
See also
- eudev - A fork of systemd's udev with the goal of obtaining better compatibility with existing software such as OpenRC.
- udev - The device manager for the Linux kernel.
External resources
- Introduction to D-Bus (freedesktop.org)
- D-Bus tutorial (freedesktop.org)