-<?xml version='1.0'?> <!--*-nxml-*-->
+<?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">
<refsect1>
<title>Description</title>
- <para><command>systemctl</command> may be used to
- introspect and control the state of the
+ <para><command>systemctl</command> may be used to introspect and
+ control the state of the <literal>systemd</literal> system and
+ service manager. Please refer to
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- system and service manager.</para>
+ for an introduction into the basic concepts and functionality this
+ tool manages.</para>
</refsect1>
<refsect1>
<term><option>--state=</option></term>
<listitem>
- <para>The argument should be a comma-separated list of unit LOAD,
- SUB, or ACTIVE states. When listing units, show only those
- in specified states.</para>
+ <para>The argument should be a comma-separated list of unit
+ LOAD, SUB, or ACTIVE states. When listing units, show only
+ those in specified states. Use <option>--state=failed</option>
+ to show only failed units.</para>
</listitem>
</varlistentry>
<listitem>
<para>Show reverse dependencies between units with
- <command>list-dependencies</command>, i.e. units with
- dependencies of type <varname>Wants=</varname> or
- <varname>Requires=</varname> on the given unit.
+ <command>list-dependencies</command>, i.e. follow
+ dependencies of type <varname>WantedBy=</varname>,
+ <varname>RequiredBy=</varname>,
+ <varname>RequiredByOverrridable=</varname>,
+ <varname>PartOf=</varname>, <varname>BoundBy=</varname>,
+ instead of <varname>Wants=</varname> and similar.
</para>
</listitem>
</varlistentry>
<listitem>
<para>With <command>list-dependencies</command>, show the
units that are ordered before the specified unit. In other
- words, list the units that are in the <varname>After=</varname>
- directive of the specified unit, have the specified unit in
- their <varname>Before=</varname> directive, or are otherwise
- implicit dependencies of the specified unit.</para>
+ words, recursively list units following the
+ <varname>After=</varname> dependency.</para>
+
+ <para>Note that any <varname>After=</varname> dependency is
+ automatically mirrored to create a
+ <varname>Before=</varname> dependency. Temporal dependencies
+ may be specified explictly, but are also created implicitly
+ for units which are <varname>WantedBy=</varname> targets
+ (see
+ <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>),
+ and as a result of other directives (for example
+ <varname>RequiresMountsFor=</varname>). Both explicitly
+ and implicitly introduced dependencies are shown with
+ <command>list-dependencies</command>.</para>
</listitem>
</varlistentry>
<listitem>
<para>With <command>list-dependencies</command>, show the
units that are ordered after the specified unit. In other
- words, list the units that are in the <varname>Before=</varname>
- directive of the specified unit, have the specified unit in
- their <varname>After=</varname> directive, or otherwise depend
- on the specified unit.</para>
+ words, recursively list units following the
+ <varname>Before=</varname> dependency.</para>
</listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="user" />
<xi:include href="user-system-options.xml" xpointer="system" />
+ <!-- we do not document -failed here, as it has been made
+ redundant by -state=failed, which it predates. To keep
+ things simple we only document the new switch, while
+ keeping the old one around for compatibility only. -->
+
<varlistentry>
<term><option>--no-wall</option></term>
</para>
<para>See also the options <option>--show-types</option>,
- <option>--all</option>, and <option>--failed</option>.</para>
+ <option>--all</option>, and <option>--state=</option>.</para>
</listitem>
</varlistentry>
</para>
<para>See also the options <option>--all</option> and
- <option>--failed</option>.</para>
+ <option>--state=</option>.</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
- <term><command>list-dependencies <replaceable>NAME</replaceable></command></term>
+ <term>
+ <command>list-dependencies</command>
+ <optional><replaceable>NAME</replaceable></optional>
+ </term>
<listitem>
- <para>Shows required and wanted units of the specified
- unit. If no unit is specified,
- <filename>default.target</filename> is implied. Target units
- are recursively expanded. When <option>--all</option> is
- passed, all other units are recursively expanded as
- well.</para>
+ <para>Shows units required and wanted by the specified
+ unit. This recursively lists units following the
+ <varname>Requires=</varname>,
+ <varname>RequiresOverridable=</varname>,
+ <varname>Requisite=</varname>,
+ <varname>RequisiteOverridable=</varname>,
+ <varname>Wants=</varname>, <varname>BindsTo=</varname>
+ dependencies. If no unit is specified,
+ <filename>default.target</filename> is implied.</para>
+
+ <para>By default, only target units are recursively
+ expanded. When <option>--all</option> is passed, all other
+ units are recursively expanded as well.</para>
+
+ <para>Options <option>--reverse</option>,
+ <option>--after</option>, <option>--before</option>
+ may be used to change what types of dependencies
+ are shown.</para>
</listitem>
</varlistentry>
</variablelist>
the system, or for all future logins of all users, or only this
boot. Note that in the last case, no systemd daemon
configuration is reloaded.</para>
+
+ <para>Using <command>enable</command> on masked units
+ results in an error.</para>
</listitem>
</varlistentry>
<tbody>
<row>
<entry><literal>enabled</literal></entry>
- <entry morerows='1'>Enabled through a symlink in <filename>.wants</filename> directory (permanently or just in <filename>/run</filename>)</entry>
+ <entry morerows='1'>Enabled through a symlink in <filename>.wants</filename> directory (permanently or just in <filename>/run</filename>).</entry>
<entry morerows='1'>0</entry>
</row>
<row>
</row>
<row>
<entry><literal>linked</literal></entry>
- <entry morerows='1'>Made available through a symlink to the unit file (permanently or just in <filename>/run</filename>)</entry>
+ <entry morerows='1'>Made available through a symlink to the unit file (permanently or just in <filename>/run</filename>).</entry>
<entry morerows='1'>1</entry>
</row>
<row>
</row>
<row>
<entry><literal>masked</literal></entry>
- <entry morerows='1'>Disabled entirely (permanently or just in <filename>/run</filename>)</entry>
+ <entry morerows='1'>Disabled entirely (permanently or just in <filename>/run</filename>).</entry>
<entry morerows='1'>1</entry>
</row>
<row>
</row>
<row>
<entry><literal>static</literal></entry>
- <entry>Unit is not enabled, but has no provisions for enabling in [Install] section</entry>
+ <entry>Unit file is not enabled, and has no provisions for enabling in the <literal>[Install]</literal> section.</entry>
+ <entry>0</entry>
+ </row>
+ <row>
+ <entry><literal>indirect</literal></entry>
+ <entry>Unit file itself is not enabled, but it has a non-empty <varname>Also=</varname> setting in the <literal>[Install]</literal> section, listing other unit files that might be enabled.</entry>
<entry>0</entry>
</row>
<row>
<entry><literal>disabled</literal></entry>
- <entry>Unit is not enabled</entry>
+ <entry>Unit file is not enabled.</entry>
<entry>1</entry>
</row>
</tbody>
<filename>/dev/null</filename>, making it impossible to
start them. This is a stronger version of
<command>disable</command>, since it prohibits all kinds of
- activation of the unit, including manual activation. Use
- this option with care. This honors the
+ activation of the unit, including enablement and manual
+ activation. Use this option with care. This honors the
<option>--runtime</option> option to only mask temporarily
until the next reboot of the system.</para>
</listitem>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><command>add-wants <replaceable>TARGET</replaceable>
+ <replaceable>NAME</replaceable>...</command></term>
+ <term><command>add-requires <replaceable>TARGET</replaceable>
+ <replaceable>NAME</replaceable>...</command></term>
+
+ <listitem>
+ <para>Adds <literal>Wants=</literal> resp. <literal>Requires=</literal>
+ dependency to the specified <replaceable>TARGET</replaceable> for
+ one or more units. </para>
+
+ <para>This command honors <option>--system</option>,
+ <option>--user</option>, <option>--runtime</option> and
+ <option>--global</option> in a similar way as
+ <command>enable</command>.</para>
+
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><command>link <replaceable>FILENAME</replaceable>...</command></term>
<term><command>is-system-running</command></term>
<listitem>
- <para>Checks whether the system is running. This returns
- success when the system is fully up and running, meaning
- not in startup, shutdown or maintenance mode. Failure is
- returned otherwise. In addition, the current state is
- printed in a short string to standard output. Use
- <option>--quiet</option> to suppress output of this state
- string.</para>
+ <para>Checks whether the system is operational. This
+ returns success when the system is fully up and running,
+ meaning not in startup, shutdown or maintenance
+ mode. Failure is returned otherwise. In addition, the
+ current state is printed in a short string to standard
+ output, see table below. Use <option>--quiet</option> to
+ suppress this output.</para>
+
+ <table>
+ <title>Manager Operational States</title>
+ <tgroup cols='2'>
+ <colspec colname='name' />
+ <colspec colname='description' />
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><varname>initializing</varname></entry>
+ <entry><para>Early bootup, before
+ <filename>basic.target</filename> is reached
+ or the <varname>maintenance</varname> state entered.
+ </para></entry>
+ </row>
+ <row>
+ <entry><varname>starting</varname></entry>
+ <entry><para>Late bootup, before the job queue
+ becomes idle for the first time, or one of the
+ rescue targets are reached.</para></entry>
+ </row>
+ <row>
+ <entry><varname>running</varname></entry>
+ <entry><para>The system is fully
+ operational.</para></entry>
+ </row>
+ <row>
+ <entry><varname>degraded</varname></entry>
+ <entry><para>The system is operational but one or more
+ units failed.</para></entry>
+ </row>
+ <row>
+ <entry><varname>maintenance</varname></entry>
+ <entry><para>The rescue or emergency target is
+ active.</para></entry>
+ </row>
+ <row>
+ <entry><varname>stopping</varname></entry>
+ <entry><para>The manager is shutting
+ down.</para></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
</listitem>
</varlistentry>