dbus-send
Send a message to a message bus
Synopsis
dbus-send
[--system | --session]
[--dest=NAME]
[--print-reply[=literal]]
[--reply-timeout=MSEC]
[--type=TYPE] OBJECT_PATH
INTERFACE.MEMBER [CONTENTS
...]
add an example, a script, a trick and tips
examples
source
dbus-send --system --print-reply --dest="org.freedesktop.UPower"
\
/org/freedesktop/UPower org.freedesktop.UPower.Suspend
source
dbus-send --session --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell
org.freedesktop.DBus.Introspectable.Introspect
source
dbus-send --session --print-reply --type=method_call --dest=at.beko.inspect /
org.freedesktop.DBus.Introspectable.Introspect
description
The
dbus-send command is used to send a message to
a D-Bus message bus. See
http://www.freedesktop.org/software/dbus/ for more
information about the big picture.
There are two
well-known message buses: the systemwide message bus
(installed on many systems as the "messagebus"
service) and the per-user-login-session
message bus (started each time a user logs in). The
--system and --session
options direct dbus-send to send messages to
the system or session buses respectively. If neither is
specified, dbus-send sends to the session
bus.
Nearly all uses
of dbus-send must provide the
--dest argument which is the name of a
connection on the bus to send the message to. If
--dest is omitted, no destination is
set.
The object path
and the name of the message to send must always be
specified. Following arguments, if any, are the message
contents (message arguments). These are given as
type-specified values and may include containers
(arrays, dicts, and variants) as described below.
<contents>
::= <item> | <container> [ <item> |
<container>...]
<item> ::= <type>:<value>
<container> ::= <array> | <dict> |
<variant>
<array> ::=
array:<type>:<value>[,<value>...]
<dict> ::=
dict:<type>:<type>:<key>,<value>[,<key>,<value>...]
<variant> ::= variant:<type>:<value>
<type> ::= string | int16 | uint 16 | int32 | uint32 |
int64 | uint64 | double | byte | boolean | objpath
D-Bus
supports more types than these, but dbus-send
currently does not. Also, dbus-send does not
permit empty containers or nested containers (e.g. arrays of
variants).
Here is an
example invocation:
dbus-send
--dest=org.freedesktop.ExampleName \
/org/freedesktop/sample/object/name \
org.freedesktop.ExampleInterface.ExampleMethod \
int32:47 string:’hello world’ double:65.32 \
array:string:"1st item","next
item","last item" \
dict:string:int32:"one",1,"two",2,"three",3
\
variant:int32:-8 \
objpath:/org/freedesktop/sample/object/name
Note that the
interface is separated from a method or signal name by a
dot, though in the actual protocol the interface and the
interface member are separate fields.
options
The following
options are supported:
--dest=NAME
Specify the name of the
connection to receive the message.
--print-reply
Block for a reply to the
message sent, and print any reply received in a
human-readable form.
--print-reply=literal
Block for a reply to the
message sent, and print the body of the reply. If the reply
is an object path or a string, it is printed literally, with
no punctuation, escape characters etc.
--reply-timeout=MSEC
Wait for a reply for up to
MSEC milliseconds. The default is
implementation-defined, typically 25 seconds.
--system
Send to the system message
bus.
--session
Send to the session message
bus. (This is the default.)
--type=TYPE
Specify method_call or
signal (defaults to "signal").
bugs
Please send bug
reports to the D-Bus mailing list or bug tracker, see
http://www.freedesktop.org/software/dbus/
author
dbus-send
was written by Philip Blundell.