busctl
Introspect and control the D-Bus message bus
TLDR
Show all peers on the bus by their service names
Show process information and credentials of a bus service, a process, or the owner of the bus (if no parameter is specified)
Dump messages being exchanged. If no service is specified, show all messages on the bus
Show an object tree of one or more services (or all services if no service is specified)
Show interfaces, methods, properties, and signals of the specified object on the specified service
Retrieve the current value of one or more object properties
Invoke a method and show the response
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
systemctl(1), loginctl(1), dbus-monitor(1), dbus-send(1)


