diff options
Diffstat (limited to 'man/busctl.xml')
-rw-r--r-- | man/busctl.xml | 591 |
1 files changed, 591 insertions, 0 deletions
diff --git a/man/busctl.xml b/man/busctl.xml new file mode 100644 index 0000000..cc40452 --- /dev/null +++ b/man/busctl.xml @@ -0,0 +1,591 @@ +<?xml version='1.0'?> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> +<!-- SPDX-License-Identifier: LGPL-2.1-or-later --> + +<refentry id="busctl" + xmlns:xi="http://www.w3.org/2001/XInclude"> + + <refentryinfo> + <title>busctl</title> + <productname>systemd</productname> + </refentryinfo> + + <refmeta> + <refentrytitle>busctl</refentrytitle> + <manvolnum>1</manvolnum> + </refmeta> + + <refnamediv> + <refname>busctl</refname> + <refpurpose>Introspect the bus</refpurpose> + </refnamediv> + + <refsynopsisdiv> + <cmdsynopsis> + <command>busctl</command> + <arg choice="opt" rep="repeat">OPTIONS</arg> + <arg choice="opt">COMMAND</arg> + <arg choice="opt" rep="repeat"><replaceable>NAME</replaceable></arg> + </cmdsynopsis> + </refsynopsisdiv> + + <refsect1> + <title>Description</title> + + <para><command>busctl</command> may be used to + introspect and monitor the D-Bus bus.</para> + </refsect1> + + <refsect1> + <title>Commands</title> + + <para>The following commands are understood:</para> + + <variablelist> + <varlistentry> + <term><command>list</command></term> + + <listitem><para>Show all peers on the bus, by their service + names. By default, shows both unique and well-known names, but + this may be changed with the <option>--unique</option> and + <option>--acquired</option> switches. This is the default + operation if no command is specified.</para> + + <xi:include href="version-info.xml" xpointer="v209"/></listitem> + </varlistentry> + + <varlistentry> + <term><command>status</command> <arg choice="opt"><replaceable>SERVICE</replaceable></arg></term> + + <listitem><para>Show process information and credentials of a + bus service (if one is specified by its unique or well-known + name), a process (if one is specified by its numeric PID), or + the owner of the bus (if no parameter is + specified).</para> + + <xi:include href="version-info.xml" xpointer="v209"/></listitem> + </varlistentry> + + <varlistentry> + <term><command>monitor</command> <arg choice="opt" rep="repeat"><replaceable>SERVICE</replaceable></arg></term> + + <listitem><para>Dump messages being exchanged. If + <replaceable>SERVICE</replaceable> is specified, show messages + to or from this peer, identified by its well-known or unique + name. Otherwise, show all messages on the bus. Use + <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo> + to terminate the dump.</para> + + <xi:include href="version-info.xml" xpointer="v209"/></listitem> + </varlistentry> + + <varlistentry> + <term><command>capture</command> <arg choice="opt" rep="repeat"><replaceable>SERVICE</replaceable></arg></term> + + <listitem><para>Similar to <command>monitor</command> but + writes the output in pcapng format (for details, see + <ulink url="https://github.com/pcapng/pcapng/"> + PCAP Next Generation (pcapng) Capture File Format</ulink>). + Make sure to redirect standard output to a file or pipe. Tools like + <citerefentry project='die-net'><refentrytitle>wireshark</refentrytitle><manvolnum>1</manvolnum></citerefentry> + may be used to dissect and view the resulting + files.</para> + + <xi:include href="version-info.xml" xpointer="v218"/></listitem> + </varlistentry> + + <varlistentry> + <term><command>tree</command> <arg choice="opt" rep="repeat"><replaceable>SERVICE</replaceable></arg></term> + + <listitem><para>Shows an object tree of one or more + services. If <replaceable>SERVICE</replaceable> is specified, + show object tree of the specified services only. Otherwise, + show all object trees of all services on the bus that acquired + at least one well-known name.</para> + + <xi:include href="version-info.xml" xpointer="v218"/></listitem> + </varlistentry> + + <varlistentry> + <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> + + <listitem><para>Show interfaces, methods, properties and + signals of the specified object (identified by its path) on + the specified service. If the interface argument is passed, the + output is limited to members of the specified + interface.</para> + + <xi:include href="version-info.xml" xpointer="v218"/></listitem> + </varlistentry> + + <varlistentry> + <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> + + <listitem><para>Invoke a method and show the response. Takes a + service name, object path, interface name and method name. If + parameters shall be passed to the method call, a signature + string is required, followed by the arguments, individually + formatted as strings. For details on the formatting used, see + below. To suppress output of the returned data, use the + <option>--quiet</option> option.</para> + + <xi:include href="version-info.xml" xpointer="v218"/></listitem> + </varlistentry> + + <varlistentry> + <term><command>emit</command> <arg choice="plain"><replaceable>OBJECT</replaceable></arg> <arg choice="plain"><replaceable>INTERFACE</replaceable></arg> <arg choice="plain"><replaceable>SIGNAL</replaceable></arg> <arg choice="opt"><replaceable>SIGNATURE</replaceable> <arg choice="opt" rep="repeat"><replaceable>ARGUMENT</replaceable></arg></arg></term> + + <listitem><para>Emit a signal. Takes an object path, interface name and method name. If parameters + shall be passed, a signature string is required, followed by the arguments, individually formatted as + strings. For details on the formatting used, see below. To specify the destination of the signal, + use the <option>--destination=</option> option.</para> + + <xi:include href="version-info.xml" xpointer="v242"/></listitem> + </varlistentry> + + <varlistentry> + <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> + + <listitem><para>Retrieve the current value of one or more + object properties. Takes a service name, object path, + interface name and property name. Multiple properties may be + specified at once, in which case their values will be shown one + after the other, separated by newlines. The output is, by + default, in terse format. Use <option>--verbose</option> for a + more elaborate output format.</para> + + <xi:include href="version-info.xml" xpointer="v218"/></listitem> + </varlistentry> + + <varlistentry> + <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> + + <listitem><para>Set the current value of an object + property. Takes a service name, object path, interface name, + property name, property signature, followed by a list of + parameters formatted as strings.</para> + + <xi:include href="version-info.xml" xpointer="v218"/></listitem> + </varlistentry> + + <varlistentry> + <term><command>help</command></term> + + <listitem><para>Show command syntax help.</para> + + <xi:include href="version-info.xml" xpointer="v209"/></listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1> + <title>Options</title> + + <para>The following options are understood:</para> + + <variablelist> + <varlistentry> + <term><option>--address=<replaceable>ADDRESS</replaceable></option></term> + + <listitem><para>Connect to the bus specified by + <replaceable>ADDRESS</replaceable> instead of using suitable + defaults for either the system or user bus (see + <option>--system</option> and <option>--user</option> + options).</para> + + <xi:include href="version-info.xml" xpointer="v209"/></listitem> + </varlistentry> + + <varlistentry> + <term><option>--show-machine</option></term> + + <listitem><para>When showing the list of peers, show a + column containing the names of containers they belong to. + See + <citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>. + </para> + + <xi:include href="version-info.xml" xpointer="v209"/></listitem> + </varlistentry> + + <varlistentry> + <term><option>--unique</option></term> + + <listitem><para>When showing the list of peers, show only + "unique" names (of the form + <literal>:<replaceable>number</replaceable>.<replaceable>number</replaceable></literal>). + </para> + + <xi:include href="version-info.xml" xpointer="v209"/></listitem> + </varlistentry> + + <varlistentry> + <term><option>--acquired</option></term> + + <listitem><para>The opposite of <option>--unique</option> — + only "well-known" names will be shown.</para> + + <xi:include href="version-info.xml" xpointer="v209"/></listitem> + </varlistentry> + + <varlistentry> + <term><option>--activatable</option></term> + + <listitem><para>When showing the list of peers, show only + peers which have actually not been activated yet, but may be + started automatically if accessed.</para> + + <xi:include href="version-info.xml" xpointer="v209"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--match=<replaceable>MATCH</replaceable></option></term> + + <listitem><para>When showing messages being exchanged, show only the + subset matching <replaceable>MATCH</replaceable>. + See + <citerefentry><refentrytitle>sd_bus_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry>. + </para> + + <xi:include href="version-info.xml" xpointer="v209"/></listitem> + </varlistentry> + + <varlistentry> + <term><option>--size=</option></term> + + <listitem> + <para>When used with the <command>capture</command> command, + specifies the maximum bus message size to capture + ("snaplen"). Defaults to 4096 bytes.</para> + + <xi:include href="version-info.xml" xpointer="v218"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--list</option></term> + + <listitem> + <para>When used with the <command>tree</command> command, shows a + flat list of object paths instead of a tree.</para> + + <xi:include href="version-info.xml" xpointer="v218"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-q</option></term> + <term><option>--quiet</option></term> + + <listitem> + <para>When used with the <command>call</command> command, + suppresses display of the response message payload. Note that even + if this option is specified, errors returned will still be + printed and the tool will indicate success or failure with + the process exit code.</para> + + <xi:include href="version-info.xml" xpointer="v218"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--verbose</option></term> + + <listitem> + <para>When used with the <command>call</command> or + <command>get-property</command> command, shows output in a + more verbose format.</para> + + <xi:include href="version-info.xml" xpointer="v218"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--xml-interface</option></term> + + <listitem> + <para>When used with the <command>introspect</command> call, dump the XML description received from + the D-Bus <constant>org.freedesktop.DBus.Introspectable.Introspect</constant> call instead of the + normal output.</para> + + <xi:include href="version-info.xml" xpointer="v243"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--json=</option><replaceable>MODE</replaceable></term> + + <listitem> + <para>When used with the <command>call</command> or <command>get-property</command> command, shows output + formatted as JSON. Expects one of <literal>short</literal> (for the shortest possible output without any + redundant whitespace or line breaks) or <literal>pretty</literal> (for a pretty version of the same, with + indentation and line breaks). Note that transformation from D-Bus marshalling to JSON is done in a loss-less + way, which means type information is embedded into the JSON object tree.</para> + + <xi:include href="version-info.xml" xpointer="v240"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>-j</option></term> + + <listitem> + <para>Equivalent to <option>--json=pretty</option> when invoked interactively from a terminal. Otherwise + equivalent to <option>--json=short</option>, in particular when the output is piped to some other + program.</para> + + <xi:include href="version-info.xml" xpointer="v240"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--expect-reply=</option><replaceable>BOOL</replaceable></term> + + <listitem> + <para>When used with the <command>call</command> command, + specifies whether <command>busctl</command> shall wait for + completion of the method call, output the returned method + response data, and return success or failure via the process + exit code. If this is set to <literal>no</literal>, the + method call will be issued but no response is expected, the + tool terminates immediately, and thus no response can be + shown, and no success or failure is returned via the exit + code. To only suppress output of the reply message payload, + use <option>--quiet</option> above. Defaults to + <literal>yes</literal>.</para> + + <xi:include href="version-info.xml" xpointer="v218"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--auto-start=</option><replaceable>BOOL</replaceable></term> + + <listitem> + <para>When used with the <command>call</command> or <command>emit</command> command, specifies + whether the method call should implicitly activate the + called service, should it not be running yet but is + configured to be auto-started. Defaults to + <literal>yes</literal>.</para> + + <xi:include href="version-info.xml" xpointer="v218"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--allow-interactive-authorization=</option><replaceable>BOOL</replaceable></term> + + <listitem> + <para>When used with the <command>call</command> command, + specifies whether the services may enforce interactive + authorization while executing the operation, if the security + policy is configured for this. Defaults to + <literal>yes</literal>.</para> + + <xi:include href="version-info.xml" xpointer="v218"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--timeout=</option><replaceable>SECS</replaceable></term> + + <listitem> + <para>When used with the <command>call</command> command, + specifies the maximum time to wait for method call + completion. If no time unit is specified, assumes + seconds. The usual other units are understood, too (ms, us, + s, min, h, d, w, month, y). Note that this timeout does not + apply if <option>--expect-reply=no</option> is used, as the + tool does not wait for any reply message then. When not + specified or when set to 0, the default of + <literal>25s</literal> is assumed.</para> + + <xi:include href="version-info.xml" xpointer="v218"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--augment-creds=</option><replaceable>BOOL</replaceable></term> + + <listitem> + <para>Controls whether credential data reported by + <command>list</command> or <command>status</command> shall + be augmented with data from + <filename>/proc/</filename>. When this is turned on, the data + shown is possibly inconsistent, as the data read from + <filename>/proc/</filename> might be more recent than the rest of + the credential information. Defaults to <literal>yes</literal>.</para> + + <xi:include href="version-info.xml" xpointer="v218"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--watch-bind=</option><replaceable>BOOL</replaceable></term> + + <listitem> + <para>Controls whether to wait for the specified <constant>AF_UNIX</constant> bus socket to appear in the + file system before connecting to it. Defaults to off. When enabled, the tool will watch the file system until + the socket is created and then connect to it.</para> + + <xi:include href="version-info.xml" xpointer="v237"/> + </listitem> + </varlistentry> + + <varlistentry> + <term><option>--destination=</option><replaceable>SERVICE</replaceable></term> + + <listitem> + <para>Takes a service name. When used with the <command>emit</command> command, a signal is + emitted to the specified service.</para> + + <xi:include href="version-info.xml" xpointer="v242"/> + </listitem> + </varlistentry> + + <xi:include href="user-system-options.xml" xpointer="user" /> + <xi:include href="user-system-options.xml" xpointer="system" /> + <xi:include href="user-system-options.xml" xpointer="host" /> + <xi:include href="user-system-options.xml" xpointer="machine" /> + + <varlistentry> + <term><option>-l</option></term> + <term><option>--full</option></term> + + <listitem> + <para>Do not ellipsize the output in <command>list</command> command.</para> + + <xi:include href="version-info.xml" xpointer="v245"/> + </listitem> + </varlistentry> + + <xi:include href="standard-options.xml" xpointer="no-pager" /> + <xi:include href="standard-options.xml" xpointer="no-legend" /> + <xi:include href="standard-options.xml" xpointer="help" /> + <xi:include href="standard-options.xml" xpointer="version" /> + </variablelist> + </refsect1> + + <refsect1> + <title>Parameter Formatting</title> + + <para>The <command>call</command> and + <command>set-property</command> commands take a signature string + followed by a list of parameters formatted as string (for details + on D-Bus signature strings, see the <ulink + url="https://dbus.freedesktop.org/doc/dbus-specification.html#type-system">Type + system chapter of the D-Bus specification</ulink>). For simple + types, each parameter following the signature should simply be the + parameter's value formatted as string. Positive boolean values may + be formatted as <literal>true</literal>, <literal>yes</literal>, + <literal>on</literal>, or <literal>1</literal>; negative boolean + values may be specified as <literal>false</literal>, + <literal>no</literal>, <literal>off</literal>, or + <literal>0</literal>. For arrays, a numeric argument for the + number of entries followed by the entries shall be specified. For + variants, the signature of the contents shall be specified, + followed by the contents. For dictionaries and structs, the + contents of them shall be directly specified.</para> + + <para>For example, + <programlisting>s jawoll</programlisting> is the formatting + of a single string <literal>jawoll</literal>.</para> + + <para> + <programlisting>as 3 hello world foobar</programlisting> + is the formatting of a string array with three entries, + <literal>hello</literal>, <literal>world</literal> and + <literal>foobar</literal>.</para> + + <para> + <programlisting>a{sv} 3 One s Eins Two u 2 Yes b true</programlisting> + is the formatting of a dictionary + array that maps strings to variants, consisting of three + entries. The string <literal>One</literal> is assigned the + string <literal>Eins</literal>. The string + <literal>Two</literal> is assigned the 32-bit unsigned + integer 2. The string <literal>Yes</literal> is assigned a + positive boolean.</para> + + <para>Note that the <command>call</command>, + <command>get-property</command>, <command>introspect</command> + commands will also generate output in this format for the returned + data. Since this format is sometimes too terse to be easily + understood, the <command>call</command> and + <command>get-property</command> commands may generate a more + verbose, multi-line output when passed the + <option>--verbose</option> option.</para> + </refsect1> + + <refsect1> + <title>Examples</title> + + <example> + <title>Write and Read a Property</title> + + <para>The following two commands first write a property and then + read it back. The property is found on the + <literal>/org/freedesktop/systemd1</literal> object of the + <literal>org.freedesktop.systemd1</literal> service. The name of + the property is <literal>LogLevel</literal> on the + <literal>org.freedesktop.systemd1.Manager</literal> + interface. The property contains a single string:</para> + + <programlisting># busctl set-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel s debug +# busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel +s "debug"</programlisting> + + </example> + + <example> + <title>Terse and Verbose Output</title> + + <para>The following two commands read a property that contains + an array of strings, and first show it in terse format, followed + by verbose format:</para> + + <programlisting>$ busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Environment +as 2 "LANG=en_US.UTF-8" "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" +$ busctl get-property --verbose org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Environment +ARRAY "s" { + STRING "LANG=en_US.UTF-8"; + STRING "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"; +};</programlisting> + </example> + + <example> + <title>Invoking a Method</title> + + <para>The following command invokes the + <literal>StartUnit</literal> method on the + <literal>org.freedesktop.systemd1.Manager</literal> + interface of the + <literal>/org/freedesktop/systemd1</literal> object + of the <literal>org.freedesktop.systemd1</literal> + service, and passes it two strings + <literal>cups.service</literal> and + <literal>replace</literal>. As a result of the method + call, a single object path parameter is received and + shown:</para> + + <programlisting># busctl call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager StartUnit ss "cups.service" "replace" +o "/org/freedesktop/systemd1/job/42684"</programlisting> + </example> + </refsect1> + + <refsect1> + <title>See Also</title> + + <para> + <citerefentry project='dbus'><refentrytitle>dbus-daemon</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + <ulink url="https://www.freedesktop.org/wiki/Software/dbus">D-Bus</ulink>, + <citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>, + <citerefentry><refentrytitle>varlinkctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + <citerefentry project='die-net'><refentrytitle>wireshark</refentrytitle><manvolnum>1</manvolnum></citerefentry> + </para> + </refsect1> +</refentry> |