| <?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*--> |
| <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" |
| "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> |
| |
| <!-- |
| This file is part of systemd. |
| |
| Copyright 2014 Zbigniew Jędrzejewski-Szmek |
| |
| systemd is free software; you can redistribute it and/or modify it |
| under the terms of the GNU Lesser General Public License as published by |
| the Free Software Foundation; either version 2.1 of the License, or |
| (at your option) any later version. |
| |
| systemd is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Lesser General Public License for more details. |
| |
| You should have received a copy of the GNU Lesser General Public License |
| along with systemd; If not, see <http://www.gnu.org/licenses/>. |
| --> |
| |
| <refentry id="busctl" |
| xmlns:xi="http://www.w3.org/2001/XInclude"> |
| |
| <refentryinfo> |
| <title>busctl</title> |
| <productname>systemd</productname> |
| |
| <authorgroup> |
| <author> |
| <contrib>A monkey with a typewriter</contrib> |
| <firstname>Zbigniew</firstname> |
| <surname>Jędrzejewski-Szmek</surname> |
| <email>zbyszek@in.waw.pl</email> |
| </author> |
| </authorgroup> |
| </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>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></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></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></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>--acquired</option></term> |
| |
| <listitem><para>The opposite of <option>--unique</option> — |
| only "well-known" names will be shown.</para></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> |
| </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>.</para></listitem> |
| <!-- TODO: link to sd_bus_add_match when it is written? --> |
| </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> |
| </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> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <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> |
| </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> |
| </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> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>--auto-start=</option><replaceable>BOOL</replaceable></term> |
| |
| <listitem> |
| <para>When used with the <command>call</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> |
| </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> |
| </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> |
| </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 rest of |
| the credential information. Defaults to <literal>yes</literal>.</para> |
| </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" /> |
| |
| <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>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></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></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 Ctrl-C to |
| terminate dump.</para></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 pcap format (for details see the <ulink |
| url="http://wiki.wireshark.org/Development/LibpcapFileFormat">Libpcap |
| File Format</ulink> description. Make sure to redirect the |
| output to STDOUT to a file. Tools like |
| <citerefentry project='die-net'><refentrytitle>wireshark</refentrytitle><manvolnum>1</manvolnum></citerefentry> |
| may be used to dissect and view the generated |
| files.</para></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></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></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></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></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 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></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><command>help</command></term> |
| |
| <listitem><para>Show command syntax help.</para></listitem> |
| </varlistentry> |
| </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="http://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>, <literal>1</literal>; negative boolean |
| values may be specified as <literal>false</literal>, |
| <literal>no</literal>, <literal>off</literal>, |
| <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 32bit 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 a 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 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="http://freedesktop.org/wiki/Software/dbus">D-Bus</ulink>, |
| <citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd-bus-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, |
| <citerefentry project='die-net'><refentrytitle>wireshark</refentrytitle><manvolnum>1</manvolnum></citerefentry> |
| </para> |
| </refsect1> |
| </refentry> |