dbus-send — Send a message to a message bus
dbus-send
[ --system | --session | --bus=ADDRESS
| --peer=ADDRESS
] [--sender=NAME
] [--dest=NAME
] [ --print-reply [=literal
]] [--reply-timeout=MSEC
] [--type=TYPE
]OBJECT_PATH
INTERFACE.MEMBER
[CONTENTS
...]
Thedbus-send command is used to send a message to a D-Bus messagebus. Seehttps://www.freedesktop.org/wiki/Software/dbus/ for moreinformation about the big picture.
There are two well-known message buses: the systemwide message bus(installed on many systems as the "messagebus" service) and theper-user-login-session message bus (started each time a user logs in).The--system
and--session
options directdbus-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 ofdbus-send must provide the--dest
argumentwhich 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 bespecified. Following arguments, if any, are the message contents(message arguments). These are given as type-specified values andmay 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 | uint16 | int32 | uint32 | int64 | uint64 | double | byte | boolean | objpath
D-Bus supports more types than these, butdbus-send currentlydoes not. Also,dbus-send does not permit empty containersor 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 signalname by a dot, though in the actual protocol the interfaceand the interface member are separate fields.
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 receivedin a human-readable form. It also means the message type (--type=
) ismethod_call.
--print-reply=literal
Block for a reply to the message sent, and print the body of thereply. If the reply is an object path or a string, it is printedliterally, with no punctuation, escape characters etc.
--reply-timeout=
MSEC
Wait for a reply for up toMSEC 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.)
--bus=
ADDRESS
Register on a message bus atADDRESS
, typically adbus-daemon.
--peer=
ADDRESS
Send to a non-message-bus D-Bus server atADDRESS
. In this casedbus-send will not call theHello
method.
--sender=
NAME
Request ownership of nameNAME
before sending the message. The name will be released whendbus-send exits.
--type=
TYPE
Specifymethod_call orsignal (defaults to "signal").
Exit status 0 indicates success. A non-zero exit status indicates any failure, including invalid parameters, failure to connect to the --bus or --peer, failure to obtain the --sender name, a timeout while waiting for a reply to a method call, or receiving an error as the reply to a method call.
Please send bug reports to the D-Bus mailing list or bug tracker,seehttps://www.freedesktop.org/wiki/Software/dbus/