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

From Gentoo Wiki (test)
Jump to:navigation Jump to:search

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:

FILE /etc/portage/make.confEnabling D-Bus globally
USE="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
Tip
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