]> git.ipfire.org Git - thirdparty/systemd.git/blame - man/busctl.xml
sd-bus: verify destination and sender values when setting
[thirdparty/systemd.git] / man / busctl.xml
CommitLineData
514094f9 1<?xml version='1.0'?>
708c143c 2<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
12b42c76 3"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
708c143c
ZJS
4
5<!--
572eb058 6 SPDX-License-Identifier: LGPL-2.1+
708c143c
ZJS
7-->
8
dfdebb1b
ZJS
9<refentry id="busctl"
10 xmlns:xi="http://www.w3.org/2001/XInclude">
708c143c
ZJS
11
12 <refentryinfo>
13 <title>busctl</title>
14 <productname>systemd</productname>
708c143c
ZJS
15 </refentryinfo>
16
17 <refmeta>
18 <refentrytitle>busctl</refentrytitle>
19 <manvolnum>1</manvolnum>
20 </refmeta>
21
22 <refnamediv>
23 <refname>busctl</refname>
24 <refpurpose>Introspect the bus</refpurpose>
25 </refnamediv>
26
27 <refsynopsisdiv>
28 <cmdsynopsis>
29 <command>busctl</command>
30 <arg choice="opt" rep="repeat">OPTIONS</arg>
31 <arg choice="opt">COMMAND</arg>
32 <arg choice="opt" rep="repeat"><replaceable>NAME</replaceable></arg>
33 </cmdsynopsis>
34 </refsynopsisdiv>
35
36 <refsect1>
37 <title>Description</title>
38
39 <para><command>busctl</command> may be used to
40 introspect and monitor the D-Bus bus.</para>
41 </refsect1>
42
43 <refsect1>
44 <title>Options</title>
45
46 <para>The following options are understood:</para>
47
48 <variablelist>
708c143c
ZJS
49 <varlistentry>
50 <term><option>--address=<replaceable>ADDRESS</replaceable></option></term>
51
52 <listitem><para>Connect to the bus specified by
53 <replaceable>ADDRESS</replaceable> instead of using suitable
54 defaults for either the system or user bus (see
55 <option>--system</option> and <option>--user</option>
56 options).</para></listitem>
57 </varlistentry>
58
59 <varlistentry>
60 <term><option>--show-machine</option></term>
61
3ed18ce2 62 <listitem><para>When showing the list of peers, show a
708c143c
ZJS
63 column containing the names of containers they belong to.
64 See
65 <citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
66 </para></listitem>
67 </varlistentry>
68
69 <varlistentry>
70 <term><option>--unique</option></term>
71
3ed18ce2
LP
72 <listitem><para>When showing the list of peers, show only
73 "unique" names (of the form
708c143c
ZJS
74 <literal>:<replaceable>number</replaceable>.<replaceable>number</replaceable></literal>).
75 </para></listitem>
76 </varlistentry>
77
78 <varlistentry>
79 <term><option>--acquired</option></term>
80
81 <listitem><para>The opposite of <option>--unique</option> —
82 only "well-known" names will be shown.</para></listitem>
83 </varlistentry>
84
85 <varlistentry>
86 <term><option>--activatable</option></term>
87
3ed18ce2
LP
88 <listitem><para>When showing the list of peers, show only
89 peers which have actually not been activated yet, but may be
90 started automatically if accessed.</para>
708c143c
ZJS
91 </listitem>
92 </varlistentry>
93
94 <varlistentry>
95 <term><option>--match=<replaceable>MATCH</replaceable></option></term>
96
97 <listitem><para>When showing messages being exchanged, show only the
e8644ece
TH
98 subset matching <replaceable>MATCH</replaceable>.
99 See
100 <citerefentry><refentrytitle>sd_bus_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
101 </para></listitem>
708c143c 102 </varlistentry>
dfdebb1b 103
1f70b087
LP
104 <varlistentry>
105 <term><option>--size=</option></term>
106
107 <listitem>
b938cb90 108 <para>When used with the <command>capture</command> command,
1f70b087
LP
109 specifies the maximum bus message size to capture
110 ("snaplen"). Defaults to 4096 bytes.</para>
111 </listitem>
112 </varlistentry>
113
d9130355
LP
114 <varlistentry>
115 <term><option>--list</option></term>
116
117 <listitem>
b938cb90 118 <para>When used with the <command>tree</command> command, shows a
d9130355
LP
119 flat list of object paths instead of a tree.</para>
120 </listitem>
121 </varlistentry>
122
781fa938 123 <varlistentry>
af8cbf47 124 <term><option>-q</option></term>
781fa938
LP
125 <term><option>--quiet</option></term>
126
127 <listitem>
b938cb90 128 <para>When used with the <command>call</command> command,
38051578 129 suppresses display of the response message payload. Note that even
b938cb90 130 if this option is specified, errors returned will still be
38051578
LP
131 printed and the tool will indicate success or failure with
132 the process exit code.</para>
781fa938
LP
133 </listitem>
134 </varlistentry>
135
1fc55609
LP
136 <varlistentry>
137 <term><option>--verbose</option></term>
138
139 <listitem>
140 <para>When used with the <command>call</command> or
b938cb90 141 <command>get-property</command> command, shows output in a
1fc55609
LP
142 more verbose format.</para>
143 </listitem>
144 </varlistentry>
145
38051578
LP
146 <varlistentry>
147 <term><option>--expect-reply=</option><replaceable>BOOL</replaceable></term>
148
149 <listitem>
b938cb90 150 <para>When used with the <command>call</command> command,
38051578
LP
151 specifies whether <command>busctl</command> shall wait for
152 completion of the method call, output the returned method
153 response data, and return success or failure via the process
b938cb90 154 exit code. If this is set to <literal>no</literal>, the
38051578
LP
155 method call will be issued but no response is expected, the
156 tool terminates immediately, and thus no response can be
157 shown, and no success or failure is returned via the exit
b938cb90 158 code. To only suppress output of the reply message payload,
38051578
LP
159 use <option>--quiet</option> above. Defaults to
160 <literal>yes</literal>.</para>
161 </listitem>
162 </varlistentry>
163
164 <varlistentry>
165 <term><option>--auto-start=</option><replaceable>BOOL</replaceable></term>
166
167 <listitem>
b938cb90 168 <para>When used with the <command>call</command> command, specifies
38051578 169 whether the method call should implicitly activate the
b938cb90 170 called service, should it not be running yet but is
38051578
LP
171 configured to be auto-started. Defaults to
172 <literal>yes</literal>.</para>
173 </listitem>
174 </varlistentry>
175
176 <varlistentry>
177 <term><option>--allow-interactive-authorization=</option><replaceable>BOOL</replaceable></term>
178
179 <listitem>
b938cb90 180 <para>When used with the <command>call</command> command,
38051578
LP
181 specifies whether the services may enforce interactive
182 authorization while executing the operation, if the security
183 policy is configured for this. Defaults to
184 <literal>yes</literal>.</para>
185 </listitem>
186 </varlistentry>
187
a44b1081
LP
188 <varlistentry>
189 <term><option>--timeout=</option><replaceable>SECS</replaceable></term>
190
191 <listitem>
b938cb90 192 <para>When used with the <command>call</command> command,
a44b1081 193 specifies the maximum time to wait for method call
b938cb90 194 completion. If no time unit is specified, assumes
a44b1081
LP
195 seconds. The usual other units are understood, too (ms, us,
196 s, min, h, d, w, month, y). Note that this timeout does not
b938cb90 197 apply if <option>--expect-reply=no</option> is used, as the
a44b1081 198 tool does not wait for any reply message then. When not
b938cb90 199 specified or when set to 0, the default of
a44b1081
LP
200 <literal>25s</literal> is assumed.</para>
201 </listitem>
202 </varlistentry>
203
40ed1a45
LP
204 <varlistentry>
205 <term><option>--augment-creds=</option><replaceable>BOOL</replaceable></term>
206
207 <listitem>
208 <para>Controls whether credential data reported by
209 <command>list</command> or <command>status</command> shall
210 be augmented with data from
b938cb90 211 <filename>/proc</filename>. When this is turned on, the data
40ed1a45 212 shown is possibly inconsistent, as the data read from
a8eaaee7 213 <filename>/proc</filename> might be more recent than the rest of
40ed1a45
LP
214 the credential information. Defaults to <literal>yes</literal>.</para>
215 </listitem>
216 </varlistentry>
217
56d820b6
LP
218 <varlistentry>
219 <term><option>--watch-bind=</option><replaceable>BOOL</replaceable></term>
220
221 <listitem>
222 <para>Controls whether to wait for the specified <constant>AF_UNIX</constant> bus socket to appear in the
223 file system before connecting to it. Defaults to off. When enabled, the tool will watch the file system until
224 the socket is created and then connect to it.</para>
225 </listitem>
226 </varlistentry>
227
88ae7333
ZJS
228 <xi:include href="user-system-options.xml" xpointer="user" />
229 <xi:include href="user-system-options.xml" xpointer="system" />
4f50d2ef
ZJS
230 <xi:include href="user-system-options.xml" xpointer="host" />
231 <xi:include href="user-system-options.xml" xpointer="machine" />
88ae7333 232
12f15e59
ZJS
233 <xi:include href="standard-options.xml" xpointer="no-pager" />
234 <xi:include href="standard-options.xml" xpointer="no-legend" />
dfdebb1b
ZJS
235 <xi:include href="standard-options.xml" xpointer="help" />
236 <xi:include href="standard-options.xml" xpointer="version" />
708c143c
ZJS
237 </variablelist>
238 </refsect1>
239
240 <refsect1>
241 <title>Commands</title>
242
243 <para>The following commands are understood:</para>
244
245 <variablelist>
246 <varlistentry>
247 <term><command>list</command></term>
248
3ed18ce2 249 <listitem><para>Show all peers on the bus, by their service
b938cb90 250 names. By default, shows both unique and well-known names, but
3ed18ce2
LP
251 this may be changed with the <option>--unique</option> and
252 <option>--acquired</option> switches. This is the default
253 operation if no command is specified.</para></listitem>
d9130355
LP
254 </varlistentry>
255
256 <varlistentry>
2e9efd22 257 <term><command>status</command> <arg choice="opt"><replaceable>SERVICE</replaceable></arg></term>
d9130355 258
0171da06 259 <listitem><para>Show process information and credentials of a
2e9efd22
LP
260 bus service (if one is specified by its unique or well-known
261 name), a process (if one is specified by its numeric PID), or
262 the owner of the bus (if no parameter is
263 specified).</para></listitem>
708c143c
ZJS
264 </varlistentry>
265
266 <varlistentry>
86349ffe 267 <term><command>monitor</command> <arg choice="opt" rep="repeat"><replaceable>SERVICE</replaceable></arg></term>
708c143c
ZJS
268
269 <listitem><para>Dump messages being exchanged. If
86349ffe 270 <replaceable>SERVICE</replaceable> is specified, show messages
3ed18ce2
LP
271 to or from this peer, identified by its well-known or unique
272 name. Otherwise, show all messages on the bus. Use Ctrl-C to
a8eaaee7 273 terminate the dump.</para></listitem>
708c143c
ZJS
274 </varlistentry>
275
1f70b087 276 <varlistentry>
86349ffe 277 <term><command>capture</command> <arg choice="opt" rep="repeat"><replaceable>SERVICE</replaceable></arg></term>
1f70b087
LP
278
279 <listitem><para>Similar to <command>monitor</command> but
b938cb90 280 writes the output in pcap format (for details, see the <ulink
ec7924fa
LW
281 url="https://wiki.wireshark.org/Development/LibpcapFileFormat">Libpcap
282 File Format</ulink> description). Make sure to redirect
283 standard output to a file. Tools like
3ba3a79d 284 <citerefentry project='die-net'><refentrytitle>wireshark</refentrytitle><manvolnum>1</manvolnum></citerefentry>
ec7924fa 285 may be used to dissect and view the resulting
1f70b087
LP
286 files.</para></listitem>
287 </varlistentry>
288
708c143c 289 <varlistentry>
0171da06 290 <term><command>tree</command> <arg choice="opt" rep="repeat"><replaceable>SERVICE</replaceable></arg></term>
708c143c 291
0171da06
LP
292 <listitem><para>Shows an object tree of one or more
293 services. If <replaceable>SERVICE</replaceable> is specified,
294 show object tree of the specified services only. Otherwise,
295 show all object trees of all services on the bus that acquired
296 at least one well-known name.</para></listitem>
297 </varlistentry>
298
299 <varlistentry>
4f44c03e 300 <term><command>introspect</command> <arg choice="plain"><replaceable>SERVICE</replaceable></arg> <arg choice="plain"><replaceable>OBJECT</replaceable></arg> <arg choice="opt"><replaceable>INTERFACE</replaceable></arg></term>
0171da06
LP
301
302 <listitem><para>Show interfaces, methods, properties and
303 signals of the specified object (identified by its path) on
b938cb90 304 the specified service. If the interface argument is passed, the
4f44c03e
LP
305 output is limited to members of the specified
306 interface.</para></listitem>
708c143c
ZJS
307 </varlistentry>
308
309 <varlistentry>
0171da06 310 <term><command>call</command> <arg choice="plain"><replaceable>SERVICE</replaceable></arg> <arg choice="plain"><replaceable>OBJECT</replaceable></arg> <arg choice="plain"><replaceable>INTERFACE</replaceable></arg> <arg choice="plain"><replaceable>METHOD</replaceable></arg> <arg choice="opt"><replaceable>SIGNATURE</replaceable> <arg choice="opt" rep="repeat"><replaceable>ARGUMENT</replaceable></arg></arg></term>
781fa938 311
d55192ad
LP
312 <listitem><para>Invoke a method and show the response. Takes a
313 service name, object path, interface name and method name. If
b938cb90 314 parameters shall be passed to the method call, a signature
1fc55609
LP
315 string is required, followed by the arguments, individually
316 formatted as strings. For details on the formatting used, see
b938cb90 317 below. To suppress output of the returned data, use the
1fc55609 318 <option>--quiet</option> option.</para></listitem>
d55192ad
LP
319 </varlistentry>
320
321 <varlistentry>
1fc55609
LP
322 <term><command>get-property</command> <arg choice="plain"><replaceable>SERVICE</replaceable></arg> <arg choice="plain"><replaceable>OBJECT</replaceable></arg> <arg choice="plain"><replaceable>INTERFACE</replaceable></arg> <arg choice="plain" rep="repeat"><replaceable>PROPERTY</replaceable></arg></term>
323
324 <listitem><para>Retrieve the current value of one or more
325 object properties. Takes a service name, object path,
326 interface name and property name. Multiple properties may be
b938cb90
JE
327 specified at once, in which case their values will be shown one
328 after the other, separated by newlines. The output is, by
329 default, in terse format. Use <option>--verbose</option> for a
1fc55609
LP
330 more elaborate output format.</para></listitem>
331 </varlistentry>
332
333 <varlistentry>
334 <term><command>set-property</command> <arg choice="plain"><replaceable>SERVICE</replaceable></arg> <arg choice="plain"><replaceable>OBJECT</replaceable></arg> <arg choice="plain"><replaceable>INTERFACE</replaceable></arg> <arg choice="plain"><replaceable>PROPERTY</replaceable></arg> <arg choice="plain"><replaceable>SIGNATURE</replaceable></arg> <arg choice="plain" rep="repeat"><replaceable>ARGUMENT</replaceable></arg></term>
335
a8eaaee7 336 <listitem><para>Set the current value of an object
1fc55609
LP
337 property. Takes a service name, object path, interface name,
338 property name, property signature, followed by a list of
339 parameters formatted as strings.</para></listitem>
781fa938
LP
340 </varlistentry>
341
342 <varlistentry>
708c143c
ZJS
343 <term><command>help</command></term>
344
345 <listitem><para>Show command syntax help.</para></listitem>
346 </varlistentry>
347 </variablelist>
348 </refsect1>
349
1fc55609 350 <refsect1>
43dbecd5
LP
351 <title>Parameter Formatting</title>
352
353 <para>The <command>call</command> and
354 <command>set-property</command> commands take a signature string
355 followed by a list of parameters formatted as string (for details
b938cb90 356 on D-Bus signature strings, see the <ulink
43dbecd5
LP
357 url="http://dbus.freedesktop.org/doc/dbus-specification.html#type-system">Type
358 system chapter of the D-Bus specification</ulink>). For simple
b938cb90 359 types, each parameter following the signature should simply be the
43dbecd5
LP
360 parameter's value formatted as string. Positive boolean values may
361 be formatted as <literal>true</literal>, <literal>yes</literal>,
a8eaaee7 362 <literal>on</literal>, or <literal>1</literal>; negative boolean
43dbecd5 363 values may be specified as <literal>false</literal>,
a8eaaee7 364 <literal>no</literal>, <literal>off</literal>, or
43dbecd5
LP
365 <literal>0</literal>. For arrays, a numeric argument for the
366 number of entries followed by the entries shall be specified. For
b938cb90
JE
367 variants, the signature of the contents shall be specified,
368 followed by the contents. For dictionaries and structs, the
43dbecd5
LP
369 contents of them shall be directly specified.</para>
370
371 <para>For example,
372 <programlisting>s jawoll</programlisting> is the formatting
373 of a single string <literal>jawoll</literal>.</para>
374
375 <para>
376 <programlisting>as 3 hello world foobar</programlisting>
377 is the formatting of a string array with three entries,
378 <literal>hello</literal>, <literal>world</literal> and
379 <literal>foobar</literal>.</para>
380
381 <para>
382 <programlisting>a{sv} 3 One s Eins Two u 2 Yes b true</programlisting>
383 is the formatting of a dictionary
384 array that maps strings to variants, consisting of three
385 entries. The string <literal>One</literal> is assigned the
386 string <literal>Eins</literal>. The string
b938cb90 387 <literal>Two</literal> is assigned the 32-bit unsigned
43dbecd5
LP
388 integer 2. The string <literal>Yes</literal> is assigned a
389 positive boolean.</para>
390
391 <para>Note that the <command>call</command>,
392 <command>get-property</command>, <command>introspect</command>
393 commands will also generate output in this format for the returned
394 data. Since this format is sometimes too terse to be easily
395 understood, the <command>call</command> and
396 <command>get-property</command> commands may generate a more
397 verbose, multi-line output when passed the
398 <option>--verbose</option> option.</para>
1fc55609
LP
399 </refsect1>
400
401 <refsect1>
43dbecd5
LP
402 <title>Examples</title>
403
404 <example>
405 <title>Write and Read a Property</title>
406
407 <para>The following two commands first write a property and then
408 read it back. The property is found on the
409 <literal>/org/freedesktop/systemd1</literal> object of the
410 <literal>org.freedesktop.systemd1</literal> service. The name of
411 the property is <literal>LogLevel</literal> on the
412 <literal>org.freedesktop.systemd1.Manager</literal>
413 interface. The property contains a single string:</para>
414
415 <programlisting># busctl set-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel s debug
1fc55609
LP
416# busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel
417s "debug"</programlisting>
418
43dbecd5 419 </example>
1fc55609 420
43dbecd5
LP
421 <example>
422 <title>Terse and Verbose Output</title>
1fc55609 423
43dbecd5
LP
424 <para>The following two commands read a property that contains
425 an array of strings, and first show it in terse format, followed
426 by verbose format:</para>
1fc55609 427
43dbecd5 428 <programlisting>$ busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Environment
1fc55609
LP
429as 2 "LANG=en_US.UTF-8" "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
430$ busctl get-property --verbose org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Environment
431ARRAY "s" {
432 STRING "LANG=en_US.UTF-8";
433 STRING "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin";
434};</programlisting>
43dbecd5
LP
435 </example>
436
437 <example>
438 <title>Invoking a Method</title>
439
7f3fdb7f 440 <para>The following command invokes the
43dbecd5
LP
441 <literal>StartUnit</literal> method on the
442 <literal>org.freedesktop.systemd1.Manager</literal>
443 interface of the
444 <literal>/org/freedesktop/systemd1</literal> object
445 of the <literal>org.freedesktop.systemd1</literal>
446 service, and passes it two strings
447 <literal>cups.service</literal> and
a8eaaee7 448 <literal>replace</literal>. As a result of the method
b938cb90 449 call, a single object path parameter is received and
43dbecd5
LP
450 shown:</para>
451
452 <programlisting># busctl call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager StartUnit ss "cups.service" "replace"
1fc55609 453o "/org/freedesktop/systemd1/job/42684"</programlisting>
43dbecd5 454 </example>
1fc55609
LP
455 </refsect1>
456
708c143c
ZJS
457 <refsect1>
458 <title>See Also</title>
459
460 <para>
3b5cfcdb 461 <citerefentry project='dbus'><refentrytitle>dbus-daemon</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
28a0ad81 462 <ulink url="https://www.freedesktop.org/wiki/Software/dbus">D-Bus</ulink>,
708c143c
ZJS
463 <citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
464 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1f70b087 465 <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
3ba3a79d 466 <citerefentry project='die-net'><refentrytitle>wireshark</refentrytitle><manvolnum>1</manvolnum></citerefentry>
708c143c
ZJS
467 </para>
468 </refsect1>
469</refentry>