LinuxCommandLibrary

dbus-monitor

Monitor D-Bus message traffic

SYNOPSIS

dbus-monitor [options] [match-rule ...]

PARAMETERS

--system
    Connect to the system message bus (default is session bus).

--session
    Connect to the session (user) message bus.

--address=ADDRESS
    Connect to bus instance at given ADDRESS (e.g., unix:path=/run/dbus).

--monitor
    Enable full monitoring mode, including broadcasts and security events (requires bus admin privileges).

-e, --stderr
    Write output to stderr instead of stdout.

-p, --print-reply[=literal]
    Print replies to outgoing method calls. literal prints raw values.

-x, --raw
    Dump message data in hexadecimal format.

-h, --help
    Display help and exit.

-V, --version
    Print version information.

DESCRIPTION

dbus-monitor is a diagnostic tool from the D-Bus library that listens to and displays messages passing through the D-Bus message bus system. D-Bus is an inter-process communication (IPC) mechanism used extensively in Linux desktop environments like GNOME and KDE for communication between applications, services, and the desktop session.

It captures method calls, signals, replies, and errors in real-time, formatting them in a readable way with details like timestamps, sender/receiver serial numbers, object paths, interfaces, member names, and message bodies. This is invaluable for developers debugging applications, system administrators troubleshooting services (e.g., NetworkManager, systemd-logind), or users investigating desktop issues.

By default, it connects to the user session bus, but can monitor the system-wide bus. Matches can filter specific messages by type, interface, path, etc. Output includes headers like signal time=... sender=...:org.freedesktop.DBus → :1.0 org.freedesktop.DBus.NameOwnerChanged, followed by arguments. It's non-intrusive but may require elevated privileges for system bus or full monitoring.

CAVEATS

System bus monitoring often requires root privileges via sudo. High-traffic buses produce verbose output; use match rules to filter. Not suitable for long-term logging due to performance overhead. Unicode control characters may need --allow-unicode-control-characters in newer versions.

EXAMPLES

dbus-monitor --system # Monitor system bus
dbus-monitor "type='signal',interface='org.freedesktop.Notifications'" # Filter notification signals
dbus-monitor --session --print-reply # Session bus with replies

HISTORY

Developed as part of the D-Bus project by freedesktop.org around 2002 for GNOME's IPC needs, replacing CORBA/dcops. Integrated into most distros by mid-2000s with systemd and modern desktops. Current versions (1.14+) support enhanced filtering and security.

SEE ALSO

Copied to clipboard