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