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