OnWorks favicon

gdbus - Online in the Cloud

Run gdbus in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command gdbus that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



gdbus - Tool for working with D-Bus objects


gdbus introspect [--system | --session | --address address] --dest bus_name
--object-path /path/to/object [--xml] [--recurse] [--only-properties]

gdbus monitor [--system | --session | --address address] --dest bus_name
[--object-path /path/to/object]

gdbus call [--system | --session | --address address] --dest bus_name
--object-path /path/to/object --method org.project.InterfaceName.MethodName
[--timeout seconds] ARG1 ARG2...

gdbus emit [--system | --session | --address address] --object-path /path/to/object
--signal org.project.InterfaceName.SignalName [--dest unique_bus_name] ARG1 ARG2...

gdbus help


gdbus is a simple tool for working with D-Bus objects.


Prints out interfaces and property values for a remote object. For this to work, the
owner of the object needs to implement the org.freedesktop.DBus.Introspectable
interface. If the --xml option is used, the returned introspection XML is printed,
otherwise a parsed pretty representation is printed. The --recurse option can be used
to introspect children (and their children and so on) and the --only-properties option
can be used to only print the interfaces with properties.

Monitors one or all objects owned by the owner of bus_name.

Invokes a method on a remote object. Each argument to pass to the method must be
specified as a serialized GVariant except that strings do not need explicit quotes.
The return values are printed out as serialized GVariant values.

Emits a signal. Each argument to include in the signal must be specified as a
serialized GVariant except that strings do not need explicit quotes.

Prints help and exit.


gdbus ships with a bash completion script to complete commands, destinations, bus names,
object paths and interface/method names.


This shows how to introspect an object - note that the value of each
property is displayed:

$ gdbus introspect --system \
--dest org.freedesktop.NetworkManager \
--object-path /org/freedesktop/NetworkManager/Devices/0
node /org/freedesktop/NetworkManager/Devices/0 {
interface org.freedesktop.DBus.Introspectable {
Introspect(out s data);
interface org.freedesktop.DBus.Properties {
Get(in s interface,
in s propname,
out v value);
Set(in s interface,
in s propname,
in v value);
GetAll(in s interface,
out a{sv} props);
interface org.freedesktop.NetworkManager.Device.Wired {
PropertiesChanged(a{sv} arg_0);
readonly b Carrier = false;
readonly u Speed = 0;
readonly s HwAddress = '00:1D:72:88:BE:97';
interface org.freedesktop.NetworkManager.Device {
StateChanged(u arg_0,
u arg_1,
u arg_2);
readonly u DeviceType = 1;
readonly b Managed = true;
readwrite o Ip6Config = '/';
readwrite o Dhcp4Config = '/';
readwrite o Ip4Config = '/';
readonly u State = 2;
readwrite u Ip4Address = 0;
readonly u Capabilities = 3;
readonly s Driver = 'e1000e';
readwrite s Interface = 'eth0';
readonly s Udi = '/sys/devices/pci0000:00/0000:00:19.0/net/eth0';

The --recurse and --only-properties options can be useful when wanting to inspect all
objects owned by a particular process:

$ gdbus introspect --system --dest org.freedesktop.UPower --object-path / --recurse --only-properties
node / {
node /org {
node /org/freedesktop {
node /org/freedesktop/UPower {
interface org.freedesktop.UPower {
readonly b IsDocked = true;
readonly b LidForceSleep = false;
readonly b LidIsPresent = false;
readonly b LidIsClosed = false;
readonly b OnLowBattery = false;
readonly b OnBattery = false;
readonly b CanHibernate = true;
readonly b CanSuspend = true;
readonly s DaemonVersion = '0.9.10';
node /org/freedesktop/UPower/Policy {
node /org/freedesktop/UPower/Wakeups {
interface org.freedesktop.UPower.Wakeups {
readonly b HasCapability = true;

In a similar fashion, the introspect command can be used to learn details about the Notify

interface org.freedesktop.Notifications {
GetServerInformation(out s return_name,
out s return_vendor,
out s return_version,
out s return_spec_version);
GetCapabilities(out as return_caps);
CloseNotification(in u id);
Notify(in s app_name,
in u id,
in s icon,
in s summary,
in s body,
in as actions,
in a{sv} hints,
in i timeout,
out u return_id);

With this information, it's easy to use the call command to display a notification

$ gdbus call --session \
--dest org.freedesktop.Notifications \
--object-path /org/freedesktop/Notifications \
--method org.freedesktop.Notifications.Notify \
my_app_name \
42 \
gtk-dialog-info \
"The Summary" \
"Here's the body of the notification" \
[] \
{} \
(uint32 12,)

Monitoring all objects on a service:

$ gdbus monitor --system --dest org.freedesktop.ConsoleKit
Monitoring signals from all objects owned by org.freedesktop.ConsoleKit
The name org.freedesktop.ConsoleKit is owned by :1.15
/org/freedesktop/ConsoleKit/Session2: org.freedesktop.ConsoleKit.Session.ActiveChanged (false,)
/org/freedesktop/ConsoleKit/Seat1: org.freedesktop.ConsoleKit.Seat.ActiveSessionChanged ('',)
/org/freedesktop/ConsoleKit/Session2: org.freedesktop.ConsoleKit.Session.ActiveChanged (true,)
/org/freedesktop/ConsoleKit/Seat1: org.freedesktop.ConsoleKit.Seat.ActiveSessionChanged ('/org/freedesktop/ConsoleKit/Session2',)

Monitoring a single object on a service:

$ gdbus monitor --system --dest org.freedesktop.NetworkManager --object-path /org/freedesktop/NetworkManager/AccessPoint/4141
Monitoring signals on object /org/freedesktop/NetworkManager/AccessPoint/4141 owned by org.freedesktop.NetworkManager
The name org.freedesktop.NetworkManager is owned by :1.5
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': <byte 0x5c>},)
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': <byte 0x64>},)
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': <byte 0x5e>},)
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': <byte 0x64>},)

Emitting a signal:

$ gdbus emit --session --object-path /foo --signal org.bar.Foo "['foo', 'bar', 'baz']"

Emitting a signal to a specific process:

$ gdbus emit --session --object-path /bar --signal org.bar.Bar someString --dest :1.42

Use gdbus online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    Zephyr Project
    Zephyr Project
    The Zephyr Project is a new generation
    real-time operating system (RTOS) that
    supports multiple hardware
    architectures. It is based on a
    small-footprint kernel...
    Download Zephyr Project
  • 2
    SCons is a software construction tool
    that is a superior alternative to the
    classic "Make" build tool that
    we all know and love. SCons is
    implemented a...
    Download SCons
  • 3
    PSeInt is a pseudo-code interpreter for
    spanish-speaking programming students.
    Its main purpose is to be a tool for
    learning and understanding the basic
    Download PSeInt
  • 4
    oStorybook l'outil privil�gi� des
    �crivains. ATTENTION : voir sur
    --en_EN oStorybook the right tool for
    writers. WARNIN...
    Download oStorybook
  • 5
    Asuswrt-Merlin is a third party
    firmware for select Asus wireless
    routers. Based on the Asuswrt firmware
    developed by Asus, it brings tweaks, new
    features and ...
    Download Asuswrt-Merlin
  • 6
    Atom is a text editor that's
    modern, approachable and full-featured.
    It's also easily customizable- you
    can customize it to do anything and be
    able to ...
    Download Atom
  • More »

Linux commands