LinuxCommandLibrary

busctl

Introspect and control the D-Bus message bus

TLDR

Show all peers on the bus by their service names

$ busctl list
copy

Show process information and credentials of a bus service, a process, or the owner of the bus (if no parameter is specified)
$ busctl status [service|pid]
copy

Dump messages being exchanged. If no service is specified, show all messages on the bus
$ busctl monitor [service1 service2 ...]
copy

Show an object tree of one or more services (or all services if no service is specified)
$ busctl tree [service1 service2 ...]
copy

Show interfaces, methods, properties, and signals of the specified object on the specified service
$ busctl introspect [service] [path/to/object]
copy

Retrieve the current value of one or more object properties
$ busctl get-property [service] [path/to/object] [interface_name] [property_name]
copy

Invoke a method and show the response
$ busctl call [service] [path/to/object] [interface_name] [method_name]
copy

SYNOPSIS

busctl [OPTIONS...] {COMMAND} [ARGS...]

PARAMETERS

--system
    Connect to system-wide D-Bus instance

--user
    Connect to user-specific D-Bus instance

--address=


    Connect to custom bus address

--machine=
    Connect to bus on named machine

--host=
    Connect to bus on remote host

--show-machine
    Prefix output with machine name

--mode=
    Operation mode (regular|list|vars)

--unique
    Use unique connection name

--acquired
    Show names acquired by this connection

--activation=
    Control activation behavior

--configuration=
    Apply custom D-Bus config

--list
    List mode for applicable commands

--quiet
    Suppress output

--verbose
    Increase verbosity

--debug
    Enable debug output

--no-legend
    Skip legend

--no-pager
    Do not pipe output to pager

--no-ask-password
    Skip password requests

--json=
    Output in JSON format

--help
    Show help

--version
    Show version

DESCRIPTION

busctl is a powerful command-line utility from the systemd suite for interacting with D-Bus message buses, enabling introspection, method calls, signal monitoring, and service management on both system and user instances.

It lists active services, tree-views object hierarchies, invokes remote methods with typed arguments, captures bus traffic, and queries peer credentials. Ideal for debugging desktop environments, services, and IPC issues, busctl offers JSON/XML output modes and supports machine/remote connections.

Unlike low-level dbus-send, it provides intuitive syntax, auto-completion hints, and rich formatting, streamlining systemd-integrated workflows while exposing D-Bus capabilities directly from the shell.

CAVEATS

Requires systemd; some operations need root privileges.
Complex XML/JSON output may require parsing tools.
Not for high-volume production monitoring.

KEY SUBCOMMANDS

status [SERVICE]: Show service details.
list: List names/services.
introspect SERVICE PATH [INTERFACE]: Dump interface XML.
call SERVICE PATH INTERFACE.METHOD ARGS...: Invoke method.
monitor: Capture messages.
tree: Object tree view.
capture: Traffic dump.

EXPECT SYNTAX

Methods use type-prefixed args, e.g. s "string" ay "bytearray" for structured input.

HISTORY

Introduced in systemd v219 (Dec 2015) as a modern replacement for legacy D-Bus tools, developed by Lennart Poettering. Evolved with systemd releases, adding JSON support in v240+ and remote capabilities.

SEE ALSO

Copied to clipboard