chiark / gitweb /
man: fix reference to glob manpage
[elogind.git] / man / systemctl.xml
index b043581be0ca5a5c33dccfc2aef919bc8584df6b..3372e42a330f4954923725b88d489df13df52a91 100644 (file)
@@ -1,4 +1,4 @@
-<?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">
 
@@ -21,7 +21,8 @@ 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="systemctl">
+<refentry id="systemctl"
+          xmlns:xi="http://www.w3.org/2001/XInclude">
 
   <refentryinfo>
     <title>systemctl</title>
@@ -59,10 +60,12 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
   <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>
@@ -71,22 +74,6 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
     <para>The following options are understood:</para>
 
     <variablelist>
-      <varlistentry>
-        <term><option>-h</option></term>
-        <term><option>--help</option></term>
-
-        <listitem><para>Prints a short help
-        text and exits.</para></listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>--version</option></term>
-
-        <listitem>
-          <para>Prints a short version string and exits.</para>
-        </listitem>
-      </varlistentry>
-
       <varlistentry>
         <term><option>-t</option></term>
         <term><option>--type=</option></term>
@@ -111,9 +98,10 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
         <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>
 
@@ -147,82 +135,142 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
       </varlistentry>
 
       <varlistentry>
-        <term><option>--reverse</option></term>
+        <term><option>-r</option></term>
+        <term><option>--recursive</option></term>
 
         <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.
-          </para>
+          <para>When listing units, also show units of local
+          containers. Units of local containers will be prefixed with
+          the container name, separated by a single colon character
+          (<literal>:</literal>).</para>
         </listitem>
       </varlistentry>
 
       <varlistentry>
-        <term><option>--after</option></term>
-        <term><option>--before</option></term>
+        <term><option>--reverse</option></term>
 
         <listitem>
-          <para>Show which units are started after or before
-          with <command>list-dependencies</command>, respectively.
+          <para>Show reverse dependencies between units with
+          <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>
 
       <varlistentry>
-        <term><option>-l</option></term>
-        <term><option>--full</option></term>
+        <term><option>--after</option></term>
 
         <listitem>
-          <para>Do not ellipsize unit names, cgroup members, and
-          truncate unit descriptions in the output of
-          <command>list-units</command> and
-          <command>list-jobs</command>.</para>
+          <para>With <command>list-dependencies</command>, show the
+          units that are ordered before the specified unit. In other
+          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 explicitly, 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>
 
       <varlistentry>
-        <term><option>--fail</option></term>
+        <term><option>--before</option></term>
 
         <listitem>
-          <para>If the requested operation conflicts with a pending
-          unfinished job, fail the command. If this is not specified,
-          the requested operation will replace the pending job, if
-          necessary. Do not confuse with
-          <option>--failed</option>.</para>
+          <para>With <command>list-dependencies</command>, show the
+          units that are ordered after the specified unit. In other
+          words, recursively list units following the
+          <varname>Before=</varname> dependency.</para>
         </listitem>
       </varlistentry>
 
       <varlistentry>
-        <term><option>--show-types</option></term>
+        <term><option>-l</option></term>
+        <term><option>--full</option></term>
 
         <listitem>
-          <para>When showing sockets, show the type of the socket.</para>
+          <para>Do not ellipsize unit names, process tree entries,
+          journal output, or truncate unit descriptions in the output
+          of <command>status</command>, <command>list-units</command>,
+          <command>list-jobs</command>, and
+          <command>list-timers</command>.</para>
         </listitem>
       </varlistentry>
 
       <varlistentry>
-        <term><option>--irreversible</option></term>
+        <term><option>--show-types</option></term>
 
         <listitem>
-          <para>Mark this transaction's jobs as irreversible. This prevents
-          future conflicting transactions from replacing these jobs.
-          The jobs can still be cancelled using the <command>cancel</command>
-          command.</para>
+          <para>When showing sockets, show the type of the socket.</para>
         </listitem>
       </varlistentry>
 
       <varlistentry>
-        <term><option>--ignore-dependencies</option></term>
+        <term><option>--job-mode=</option></term>
 
         <listitem>
-          <para>When enqueuing a new job, ignore all its dependencies
-          and execute it immediately. If passed, no required units of
-          the unit passed will be pulled in, and no ordering
-          dependencies will be honored. This is mostly a debugging and
-          rescue tool for the administrator and should not be used by
-          applications.</para>
+        <para>When queuing a new job, this option controls how to deal with
+        already queued jobs. It takes one of <literal>fail</literal>,
+        <literal>replace</literal>,
+        <literal>replace-irreversibly</literal>,
+        <literal>isolate</literal>,
+        <literal>ignore-dependencies</literal>,
+        <literal>ignore-requirements</literal> or
+        <literal>flush</literal>. Defaults to
+        <literal>replace</literal>, except when the
+        <command>isolate</command> command is used which implies the
+        <literal>isolate</literal> job mode.</para>
+
+        <para>If <literal>fail</literal> is specified and a requested
+        operation conflicts with a pending job (more specifically:
+        causes an already pending start job to be reversed into a stop
+        job or vice versa), cause the operation to fail.</para>
+
+        <para>If <literal>replace</literal> (the default) is
+        specified, any conflicting pending job will be replaced, as
+        necessary.</para>
+
+        <para>If <literal>replace-irreversibly</literal> is specified,
+        operate like <literal>replace</literal>, but also mark the new
+        jobs as irreversible. This prevents future conflicting
+        transactions from replacing these jobs (or even being enqueued
+        while the irreversible jobs are still pending). Irreversible
+        jobs can still be cancelled using the <command>cancel</command>
+        command.</para>
+
+        <para><literal>isolate</literal> is only valid for start
+        operations and causes all other units to be stopped when the
+        specified unit is started. This mode is always used when the
+        <command>isolate</command> command is used.</para>
+
+        <para><literal>flush</literal> will cause all queued jobs to
+        be canceled when the new job is enqueued.</para>
+
+        <para>If <literal>ignore-dependencies</literal> is specified,
+        then all unit dependencies are ignored for this new job and
+        the operation is executed immediately. If passed, no required
+        units of the unit passed will be pulled in, and no ordering
+        dependencies will be honored. This is mostly a debugging and
+        rescue tool for the administrator and should not be used by
+        applications.</para>
+
+        <para><literal>ignore-requirements</literal> is similar to
+        <literal>ignore-dependencies</literal>, but only causes the
+        requirement dependencies to be ignored, the ordering
+        dependencies will still be honoured.</para>
         </listitem>
+
       </varlistentry>
 
       <varlistentry>
@@ -237,7 +285,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           sleep state. Any user may take these locks and privileged
           users may override these locks. If any locks are taken,
           shutdown and sleep state requests will normally fail
-          (regardless if privileged or not) and a list of active locks
+          (regardless of whether privileged or not) and a list of active locks
           is printed. However, if <option>--ignore-inhibitors</option>
           is specified, the locks are ignored and not printed, and the
           operation attempted anyway, possibly requiring additional
@@ -254,6 +302,8 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           <command>snapshot</command>,
           <command>is-active</command>,
           <command>is-failed</command>,
+          <command>is-enabled</command>,
+          <command>is-system-running</command>,
           <command>enable</command> and
         <command>disable</command>.</para>
         </listitem>
@@ -271,39 +321,13 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
         </listitem>
       </varlistentry>
 
-      <varlistentry>
-        <term><option>--no-legend</option></term>
-
-        <listitem>
-          <para>Do not print a legend, i.e.  the column headers and
-          the footer with hints.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>--no-pager</option></term>
-
-        <listitem>
-          <para>Do not pipe output into a pager.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>--system</option></term>
-
-        <listitem>
-          <para>Talk to the systemd system manager. (Default)</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>--user</option></term>
+      <xi:include href="user-system-options.xml" xpointer="user" />
+      <xi:include href="user-system-options.xml" xpointer="system" />
 
-        <listitem>
-          <para>Talk to the systemd manager of the calling
-          user.</para>
-        </listitem>
-      </varlistentry>
+      <!-- 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>
@@ -353,7 +377,6 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           querying the user for authentication for privileged
           operations.</para>
         </listitem>
-
       </varlistentry>
 
       <varlistentry>
@@ -361,11 +384,36 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
         <listitem>
           <para>When used with <command>kill</command>, choose which
-          processes to kill. Must be one of <option>main</option>,
-          <option>control</option> or <option>all</option> to select
-          whether to kill only the main process of the unit, the
-          control process or all processes of the unit. If omitted,
-          defaults to <option>all</option>.</para>
+          processes to send a signal to. Must be one of
+          <option>main</option>, <option>control</option> or
+          <option>all</option> to select whether to kill only the main
+          process, the control process or all processes of the
+          unit. The main process of the unit is the one that defines
+          the life-time of it. A control process of a unit is one that
+          is invoked by the manager to induce state changes of it. For
+          example, all processes started due to the
+          <varname>ExecStartPre=</varname>,
+          <varname>ExecStop=</varname> or
+          <varname>ExecReload=</varname> settings of service units are
+          control processes. Note that there is only one control
+          process per unit at a time, as only one state change is
+          executed at a time. For services of type
+          <varname>Type=forking</varname>, the initial process started
+          by the manager for <varname>ExecStart=</varname> is a
+          control process, while the process ultimately forked off by
+          that one is then considered the main process of the unit (if
+          it can be determined). This is different for service units
+          of other types, where the process forked off by the manager
+          for <varname>ExecStart=</varname> is always the main process
+          itself. A service unit consists of zero or one main process,
+          zero or one control process plus any number of additional
+          processes. Not all unit types manage processes of these
+          types however. For example, for mount units, control processes
+          are defined (which are the invocations of
+          <filename>/usr/bin/mount</filename> and
+          <filename>/usr/bin/umount</filename>), but no main process
+          is defined. If omitted, defaults to
+          <option>all</option>.</para>
         </listitem>
 
       </varlistentry>
@@ -400,7 +448,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           safe option to request an immediate reboot. If
           <option>--force</option> is specified twice for these
           operations, they will be executed immediately without
-          terminating any processes or umounting any file
+          terminating any processes or unmounting any file
           systems. Warning: specifying <option>--force</option> twice
           with any of these operations might result in data
           loss.</para>
@@ -424,7 +472,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
         <listitem>
           <para>When used with <command>enable</command>,
-          <command>disable</command>, <command>is-enabled</command>
+          <command>disable</command>, <command>edit</command>,
           (and related commands), make changes only temporarily, so
           that they are lost on the next reboot. This will have the
           effect that changes are not made in subdirectories of
@@ -432,7 +480,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           with identical immediate effects, however, since the latter
           is lost on reboot, the changes are lost too.</para>
 
-          <para>Similar, when used with
+          <para>Similarly, when used with
           <command>set-property</command>, make changes only
           temporarily, so that they are lost on the next
           reboot.</para>
@@ -440,24 +488,16 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
       </varlistentry>
 
       <varlistentry>
-        <term><option>-H</option></term>
-        <term><option>--host</option></term>
+        <term><option>--preset-mode=</option></term>
 
         <listitem>
-          <para>Execute operation remotely. Specify a hostname, or
-          username and hostname separated by <literal>@</literal>, to connect to. This
-          will use SSH to talk to the remote systemd
-          instance.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>-P</option></term>
-        <term><option>--privileged</option></term>
-
-        <listitem>
-          <para>Acquire privileges via PolicyKit before executing the
-          operation.</para>
+          <para>Takes one of <literal>full</literal> (the default),
+          <literal>enable-only</literal>,
+          <literal>disable-only</literal>. When used with the
+          <command>preset</command> or <command>preset-all</command>
+          commands, controls whether units shall be disabled and
+          enabled according to the preset rules, or only enabled, or
+          only disabled.</para>
         </listitem>
       </varlistentry>
 
@@ -495,6 +535,13 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
         </listitem>
       </varlistentry>
 
+      <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>
 
@@ -508,22 +555,26 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
       <variablelist>
         <varlistentry>
-          <term><command>list-units</command></term>
+          <term><command>list-units <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
 
           <listitem>
             <para>List known units (subject to limitations specified
-            with <option>-t</option>).</para>
+            with <option>-t</option>). If one or more
+            <replaceable>PATTERN</replaceable>s are specified, only
+            units matching one of them are shown.</para>
 
             <para>This is the default command.</para>
           </listitem>
         </varlistentry>
 
         <varlistentry>
-          <term><command>list-sockets</command></term>
+          <term><command>list-sockets <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
 
           <listitem>
-            <para>List socket units ordered by the listening address. Produces output
-            similar to
+            <para>List socket units ordered by listening address.
+            If one or more <replaceable>PATTERN</replaceable>s are
+            specified, only socket units matching one of them are
+            shown. Produces output similar to
             <programlisting>
 LISTEN           UNIT                        ACTIVATES
 /dev/initctl     systemd-initctl.socket      systemd-initctl.service
@@ -531,27 +582,49 @@ LISTEN           UNIT                        ACTIVATES
 [::]:22          sshd.socket                 sshd.service
 kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
 
-5 sockets listed.
-            </programlisting>
+5 sockets listed.</programlisting>
             Note: because the addresses might contains spaces, this output
             is not suitable for programmatic consumption.
             </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>
 
         <varlistentry>
-          <term><command>start <replaceable>NAME</replaceable>...</command></term>
+          <term><command>list-timers <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
+
+          <listitem>
+            <para>List timer units ordered by the time they elapse
+            next. If one or more <replaceable>PATTERN</replaceable>s
+            are specified, only units matching one of them are shown.
+            </para>
+
+            <para>See also the options <option>--all</option> and
+            <option>--state=</option>.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>start <replaceable>PATTERN</replaceable>...</command></term>
 
           <listitem>
             <para>Start (activate) one or more units specified on the
             command line.</para>
+
+            <para>Note that glob patterns operate on a list of currently
+            loaded units. Units which are not active and are not in a
+            failed state usually are not loaded, and would not be
+            matched by any pattern. In addition, in case of
+            instantiated units, systemd is often unaware of the
+            instance name until the instance has been started. Therefore,
+            using glob patterns with <command>start</command>
+            has limited usefulness.</para>
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>stop <replaceable>NAME</replaceable>...</command></term>
+          <term><command>stop <replaceable>PATTERN</replaceable>...</command></term>
 
           <listitem>
             <para>Stop (deactivate) one or more units specified on the
@@ -559,7 +632,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>reload <replaceable>NAME</replaceable>...</command></term>
+          <term><command>reload <replaceable>PATTERN</replaceable>...</command></term>
 
           <listitem>
             <para>Asks all units listed on the command line to reload
@@ -574,13 +647,12 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             file.</para>
 
             <para>This command should not be confused with the
-            <command>daemon-reload</command> or <command>load</command>
-            commands.</para>
+            <command>daemon-reload</command> command.</para>
           </listitem>
 
         </varlistentry>
         <varlistentry>
-          <term><command>restart <replaceable>NAME</replaceable>...</command></term>
+          <term><command>restart <replaceable>PATTERN</replaceable>...</command></term>
 
           <listitem>
             <para>Restart one or more units specified on the command
@@ -589,7 +661,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>try-restart <replaceable>NAME</replaceable>...</command></term>
+          <term><command>try-restart <replaceable>PATTERN</replaceable>...</command></term>
 
           <listitem>
             <para>Restart one or more units specified on the command
@@ -600,7 +672,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>reload-or-restart <replaceable>NAME</replaceable>...</command></term>
+          <term><command>reload-or-restart <replaceable>PATTERN</replaceable>...</command></term>
 
           <listitem>
             <para>Reload one or more units if they support it. If not,
@@ -609,7 +681,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>reload-or-try-restart <replaceable>NAME</replaceable>...</command></term>
+          <term><command>reload-or-try-restart <replaceable>PATTERN</replaceable>...</command></term>
 
           <listitem>
             <para>Reload one or more units if they support it. If not,
@@ -624,7 +696,9 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
 
           <listitem>
             <para>Start the unit specified on the command line and its
-            dependencies and stop all others.</para>
+            dependencies and stop all others. If a unit name with no
+            extension is given, an extension of
+            <literal>.target</literal> will be assumed.</para>
 
             <para>This is similar to changing the runlevel in a
             traditional init system. The <command>isolate</command>
@@ -639,56 +713,68 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>kill <replaceable>NAME</replaceable>...</command></term>
+          <term><command>kill <replaceable>PATTERN</replaceable>...</command></term>
 
           <listitem>
             <para>Send a signal to one or more processes of the
             unit. Use <option>--kill-who=</option> to select which
-            process to kill. Use <option>--kill-mode=</option> to select
-            the kill mode and <option>--signal=</option> to select the
-            signal to send.</para>
+            process to kill. Use <option>--signal=</option> to select
+            the signal to send.</para>
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>is-active <replaceable>NAME</replaceable>...</command></term>
+          <term><command>is-active <replaceable>PATTERN</replaceable>...</command></term>
 
           <listitem>
             <para>Check whether any of the specified units are active
-            (i.e. running). Returns an exit code 0 if at least one is
-            active, non-zero otherwise. Unless <option>--quiet</option>
-            is specified, this will also print the current unit state to
-            STDOUT.</para>
+            (i.e. running). Returns an exit code
+            <constant>0</constant> if at least one is active, or
+            non-zero otherwise. Unless <option>--quiet</option> is
+            specified, this will also print the current unit state to
+            standard output.</para>
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>is-failed <replaceable>NAME</replaceable>...</command></term>
+          <term><command>is-failed <replaceable>PATTERN</replaceable>...</command></term>
 
           <listitem>
-            <para>Check whether any of the specified units are in a "failed" state.
-            Returns an exit code 0 if at least one has failed, non-zero
-            otherwise. Unless <option>--quiet</option> is specified, this
-            will also print the current unit state to
-            STDOUT.</para>
+            <para>Check whether any of the specified units are in a
+            "failed" state. Returns an exit code
+            <constant>0</constant> if at least one has failed,
+            non-zero otherwise. Unless <option>--quiet</option> is
+            specified, this will also print the current unit state to
+            standard output.</para>
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>status [<replaceable>NAME</replaceable>...|<replaceable>PID</replaceable>...]</command></term>
+          <term><command>status</command> <optional><replaceable>PATTERN</replaceable>...|<replaceable>PID</replaceable>...]</optional></term>
 
           <listitem>
             <para>Show terse runtime status information about one or
             more units, followed by most recent log data from the
-            journal. If no units are specified, show all units (subject
-            to limitations specified with <option>-t</option>). If a PID
-            is passed, show information about the unit the process
-            belongs to.</para>
+            journal. If no units are specified, show system status. If
+            combined with <option>--all</option>, also show the status of
+            all units (subject to limitations specified with
+            <option>-t</option>). If a PID is passed, show information
+            about the unit the process belongs to.</para>
 
             <para>This function is intended to generate human-readable
-            output. If you are looking for computer-parsable output, use
-            <command>show</command> instead.</para>
+            output. If you are looking for computer-parsable output,
+            use <command>show</command> instead. By default this
+            function only shows 10 lines of output and ellipsizes
+            lines to fit in the terminal window. This can be changes
+            with <option>--lines</option> and <option>--full</option>,
+            see above. In addition, <command>journalctl
+            --unit=<replaceable>NAME</replaceable></command> or
+            <command>journalctl
+            --user-unit=<replaceable>NAME</replaceable></command> use
+            a similar filter for messages and might be more
+            convenient.
+            </para>
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>show [<replaceable>NAME</replaceable>...|<replaceable>JOB</replaceable>...]</command></term>
+          <term><command>show</command> <optional><replaceable>PATTERN</replaceable>...|<replaceable>JOB</replaceable>...</optional></term>
 
           <listitem>
             <para>Show properties of one or more units, jobs, or the
@@ -704,21 +790,30 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             human-readable output.</para>
           </listitem>
         </varlistentry>
+        <varlistentry>
+          <term><command>cat <replaceable>PATTERN</replaceable>...</command></term>
 
+          <listitem>
+            <para>Show backing files of one or more units. Prints the
+            "fragment" and "drop-ins" (source files) of units. Each
+            file is preceded by a comment which includes the file
+            name.</para>
+          </listitem>
+        </varlistentry>
         <varlistentry>
           <term><command>set-property <replaceable>NAME</replaceable> <replaceable>ASSIGNMENT</replaceable>...</command></term>
 
           <listitem>
             <para>Set the specified unit properties at runtime where
             this is supported. This allows changing configuration
-            parameter properties such as resource management controls at
+            parameter properties such as resource control settings at
             runtime. Not all properties may be changed at runtime, but
-            many resource management settings (primarily those in
-            <citerefentry><refentrytitle>systemd.cgroup</refentrytitle><manvolnum>5</manvolnum></citerefentry>)
+            many resource control settings (primarily those in
+            <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>)
             may. The changes are applied instantly, and stored on disk
             for future boots, unless <option>--runtime</option> is
-            passed, in which case the settings only apply until the next
-            reboot. The syntax of the property assignment follows
+            passed, in which case the settings only apply until the
+            next reboot. The syntax of the property assignment follows
             closely the syntax of assignments in unit files.</para>
 
             <para>Example: <command>systemctl set-property foobar.service CPUShares=777</command></para>
@@ -732,7 +827,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
         </varlistentry>
 
         <varlistentry>
-          <term><command>help <replaceable>NAME</replaceable>...|<replaceable>PID</replaceable>...</command></term>
+          <term><command>help <replaceable>PATTERN</replaceable>...|<replaceable>PID</replaceable>...</command></term>
 
           <listitem>
             <para>Show manual pages for one or more units, if
@@ -742,7 +837,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
         </varlistentry>
 
         <varlistentry>
-          <term><command>reset-failed [<replaceable>NAME</replaceable>...]</command></term>
+          <term><command>reset-failed [<replaceable>PATTERN</replaceable>...]</command></term>
 
           <listitem>
             <para>Reset the <literal>failed</literal> state of the
@@ -757,15 +852,30 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
         </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>
@@ -776,10 +886,13 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
 
       <variablelist>
         <varlistentry>
-          <term><command>list-unit-files</command></term>
+          <term><command>list-unit-files <optional><replaceable>PATTERN...</replaceable></optional></command></term>
 
           <listitem>
-            <para>List installed unit files.</para>
+            <para>List installed unit files. If one or more
+            <replaceable>PATTERN</replaceable>s are specified, only
+            units whose filename (just the last component of the path)
+            matches one of them are shown.</para>
           </listitem>
         </varlistentry>
 
@@ -830,11 +943,15 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             case of socket units), and so on.</para>
 
             <para>Depending on whether <option>--system</option>,
-            <option>--user</option> or <option>--global</option> is
-            specified, this enables the unit for the system, for the
-            calling user only or for all future logins of all
-            users. Note that in the last case, no systemd daemon
+            <option>--user</option>, <option>--runtime</option>,
+            or <option>--global</option> is specified, this enables the unit
+            for the system, for the calling user only, for only this boot of
+            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>
 
@@ -860,20 +977,9 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             </para>
 
             <para>This command honors <option>--system</option>,
-            <option>--user</option>, <option>--global</option> in a
-            similar way as <command>enable</command>.</para>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term><command>is-enabled <replaceable>NAME</replaceable>...</command></term>
-
-          <listitem>
-            <para>Checks whether any of the specified unit files are
-            enabled (as with <command>enable</command>). Returns an exit
-            code of 0 if at least one is enabled, non-zero
-            otherwise. Prints the current enable status. To suppress
-            this output, use <option>--quiet</option>.</para>
+            <option>--user</option>, <option>--runtime</option> and
+            <option>--global</option> in a similar way as
+            <command>enable</command>.</para>
           </listitem>
         </varlistentry>
 
@@ -898,16 +1004,106 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             command line, to the defaults configured in the preset
             policy files. This has the same effect as
             <command>disable</command> or <command>enable</command>,
-            depending how the unit is listed in the preset files. For
-            more information on the preset policy format, see
+            depending how the unit is listed in the preset files.</para>
+
+            <para>Use <option>--preset-mode=</option> to control
+            whether units shall be enabled and disabled, or only
+            enabled, or only disabled.</para>
+
+            <para>For more information on the preset policy format,
+            see
             <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
             For more information on the concept of presets, please
-            consult the
-            <ulink url="http://freedesktop.org/wiki/Software/systemd/Preset">Preset</ulink>
+            consult the <ulink
+            url="http://freedesktop.org/wiki/Software/systemd/Preset">Preset</ulink>
             document.</para>
           </listitem>
         </varlistentry>
 
+        <varlistentry>
+          <term><command>preset-all</command></term>
+
+          <listitem>
+            <para>Resets all installed unit files to the defaults
+            configured in the preset policy file (see above).</para>
+
+            <para>Use <option>--preset-mode=</option> to control
+            whether units shall be enabled and disabled, or only
+            enabled, or only disabled.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>is-enabled <replaceable>NAME</replaceable>...</command></term>
+
+          <listitem>
+            <para>Checks whether any of the specified unit files are
+            enabled (as with <command>enable</command>). Returns an
+            exit code of 0 if at least one is enabled, non-zero
+            otherwise. Prints the current enable status (see table).
+            To suppress this output, use <option>--quiet</option>.
+            </para>
+
+            <table>
+              <title>
+                <command>is-enabled</command> output
+              </title>
+
+              <tgroup cols='3'>
+                <thead>
+                  <row>
+                    <entry>Printed string</entry>
+                    <entry>Meaning</entry>
+                    <entry>Return value</entry>
+                  </row>
+                </thead>
+                <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'>0</entry>
+                  </row>
+                  <row>
+                    <entry><literal>enabled-runtime</literal></entry>
+                  </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'>1</entry>
+                  </row>
+                  <row>
+                    <entry><literal>linked-runtime</literal></entry>
+                  </row>
+                  <row>
+                    <entry><literal>masked</literal></entry>
+                    <entry morerows='1'>Disabled entirely (permanently or just in <filename>/run</filename>).</entry>
+                    <entry morerows='1'>1</entry>
+                  </row>
+                  <row>
+                    <entry><literal>masked-runtime</literal></entry>
+                  </row>
+                  <row>
+                    <entry><literal>static</literal></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 file is not enabled.</entry>
+                    <entry>1</entry>
+                  </row>
+                </tbody>
+              </tgroup>
+            </table>
+
+          </listitem>
+        </varlistentry>
+
         <varlistentry>
           <term><command>mask <replaceable>NAME</replaceable>...</command></term>
 
@@ -917,8 +1113,10 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             <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.</para>
+            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>
         </varlistentry>
 
@@ -946,12 +1144,69 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
           </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>edit <replaceable>NAME</replaceable>...</command></term>
+
+          <listitem>
+            <para>Edit a drop-in snippet or a whole replacement file if
+            <option>--full</option> is specified, to extend or override the
+            specified unit.</para>
+
+            <para>Depending on whether <option>--system</option> (the default),
+            <option>--user</option>, or <option>--global</option> is specified,
+            this creates a drop-in file for each unit either for the system,
+            for the calling user or for all futures logins of all users. Then,
+            the editor (see the "Environment" section below) is invoked on
+            temporary files which will be written to the real location if the
+            editor exits successfully.</para>
+
+            <para>If <option>--full</option> is specified, this will copy the
+            original units instead of creating drop-in files.</para>
+
+            <para>If <option>--runtime</option> is specified, the changes will
+            be made temporarily in <filename>/run</filename> and they will be
+            lost on the next reboot.</para>
+
+            <para>If the temporary file is empty upon exit the modification of
+            the related unit is canceled</para>
+
+            <para>After the units have been edited, systemd configuration is
+            reloaded (in a way that is equivalent to <command>daemon-reload</command>).
+            </para>
+
+            <para>Note that this command cannot be used to remotely edit units
+            and that you cannot temporarily edit units which are in
+            <filename>/etc</filename> since they take precedence over
+            <filename>/run</filename>.</para>
+          </listitem>
+        </varlistentry>
+
         <varlistentry>
           <term><command>get-default</command></term>
 
           <listitem>
-            <para>Get the default target specified
-            via <filename>default.target</filename> link.</para>
+            <para>Return the default target to boot into. This returns
+            the target unit name <filename>default.target</filename>
+            is aliased (symlinked) to.</para>
           </listitem>
         </varlistentry>
 
@@ -959,8 +1214,28 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
           <term><command>set-default <replaceable>NAME</replaceable></command></term>
 
           <listitem>
-            <para>Set the default target to boot into. Command links
-            <filename>default.target</filename> to the given unit.</para>
+            <para>Set the default target to boot into. This sets
+            (symlinks) the <filename>default.target</filename> alias
+            to the given target unit.</para>
+          </listitem>
+        </varlistentry>
+
+      </variablelist>
+    </refsect2>
+
+    <refsect2>
+      <title>Machine Commands</title>
+
+      <variablelist>
+        <varlistentry>
+          <term><command>list-machines <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
+
+          <listitem>
+            <para>List the host and all running local containers with
+            their state. If one or more
+            <replaceable>PATTERN</replaceable>s are specified, only
+            containers matching one of them are shown.
+            </para>
           </listitem>
         </varlistentry>
       </variablelist>
@@ -971,10 +1246,12 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
 
       <variablelist>
         <varlistentry>
-          <term><command>list-jobs</command></term>
+          <term><command>list-jobs <optional><replaceable>PATTERN...</replaceable></optional></command></term>
 
           <listitem>
-            <para>List jobs that are in progress.</para>
+            <para>List jobs that are in progress. If one or more
+            <replaceable>PATTERN</replaceable>s are specified, only
+            jobs for units matching one of them are shown.</para>
           </listitem>
         </varlistentry>
         <varlistentry>
@@ -994,14 +1271,15 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
 
       <variablelist>
         <varlistentry>
-          <term><command>snapshot [<replaceable>NAME</replaceable>]</command></term>
+          <term><command>snapshot <optional><replaceable>NAME</replaceable></optional></command></term>
 
           <listitem>
             <para>Create a snapshot. If a snapshot name is specified,
             the new snapshot will be named after it. If none is
-            specified, an automatic snapshot name is generated. In either
-            case, the snapshot name used is printed to STDOUT, unless
-            <option>--quiet</option> is specified.</para>
+            specified, an automatic snapshot name is generated. In
+            either case, the snapshot name used is printed to standard
+            output, unless <option>--quiet</option> is specified.
+            </para>
 
             <para>A snapshot refers to a saved state of the systemd
             manager. It is implemented itself as a unit that is
@@ -1018,7 +1296,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>delete <replaceable>NAME</replaceable>...</command></term>
+          <term><command>delete <replaceable>PATTERN</replaceable>...</command></term>
 
           <listitem>
             <para>Remove a snapshot previously created with
@@ -1062,6 +1340,22 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             specified value.</para>
           </listitem>
         </varlistentry>
+        <varlistentry>
+          <term>
+           <command>import-environment</command>
+           <optional><replaceable>VARIABLE...</replaceable></optional>
+         </term>
+
+          <listitem>
+            <para>Import all, one or more environment variables set on
+            the client into the systemd manager environment block. If
+            no arguments are passed, the entire environment block is
+            imported. Otherwise, a list of one or more environment
+            variable names should be passed, whose client-side values
+            are then imported into the manager's environment
+            block.</para>
+          </listitem>
+        </varlistentry>
       </variablelist>
     </refsect2>
 
@@ -1073,13 +1367,16 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
           <term><command>daemon-reload</command></term>
 
           <listitem>
-            <para>Reload systemd manager configuration. This will reload
-            all unit files and recreate the entire dependency
-            tree. While the daemon is being reloaded, all sockets systemd
-            listens on on behalf of user configuration will stay
-            accessible.</para> <para>This command should not be confused
-            with the <command>load</command> or
-            <command>reload</command> commands.</para>
+            <para>Reload systemd manager configuration. This will
+            rerun all generators (see
+            <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>),
+            reload all unit files, and recreate the entire dependency
+            tree. While the daemon is being reloaded, all sockets
+            systemd listens on behalf of user configuration will stay
+            accessible.</para>
+
+            <para>This command should not be confused with the
+            <command>reload</command> command.</para>
           </listitem>
         </varlistentry>
         <varlistentry>
@@ -1103,6 +1400,69 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
       <title>System Commands</title>
 
       <variablelist>
+        <varlistentry>
+          <term><command>is-system-running</command></term>
+
+          <listitem>
+            <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>
+
         <varlistentry>
           <term><command>default</command></term>
 
@@ -1111,6 +1471,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             <command>isolate default.target</command>.</para>
           </listitem>
         </varlistentry>
+
         <varlistentry>
           <term><command>rescue</command></term>
 
@@ -1162,7 +1523,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
           </listitem>
         </varlistentry>
         <varlistentry>
-          <term><command>reboot</command></term>
+          <term><command>reboot <optional><replaceable>arg</replaceable></optional></command></term>
 
           <listitem>
             <para>Shut down and reboot the system. This is mostly
@@ -1175,8 +1536,19 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             specified twice, the operation is immediately executed
             without terminating any processes or unmounting any file
             systems. This may result in data loss.</para>
+
+            <para>If the optional argument
+            <replaceable>arg</replaceable> is given, it will be passed
+            as the optional argument to the
+            <citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>
+            system call. The value is architecture and firmware
+            specific. As an example, <literal>recovery</literal> might
+            be used to trigger system recovery, and
+            <literal>fota</literal> might be used to trigger a
+            <quote>firmware over the air</quote> update.</para>
           </listitem>
         </varlistentry>
+
         <varlistentry>
           <term><command>kexec</command></term>
 
@@ -1190,6 +1562,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             immediately followed by the reboot.</para>
           </listitem>
         </varlistentry>
+
         <varlistentry>
           <term><command>exit</command></term>
 
@@ -1199,8 +1572,29 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             with the <option>--user</option> option) and will fail
             otherwise.</para>
           </listitem>
+        </varlistentry>
 
+        <varlistentry>
+          <term><command>switch-root <replaceable>ROOT</replaceable> <optional><replaceable>INIT</replaceable></optional></command></term>
+
+          <listitem>
+            <para>Switches to a different root directory and executes a
+            new system manager process below it. This is intended for
+            usage in initial RAM disks ("initrd"), and will transition
+            from the initrd's system manager process (a.k.a "init"
+            process) to the main system manager process. This call takes two
+            arguments: the directory that is to become the new root directory, and
+            the path to the new system manager binary below it to
+            execute as PID 1. If the latter is omitted or the empty
+            string, a systemd binary will automatically be searched for
+            and used as init. If the system manager path is omitted or
+            equal to the empty string, the state of the initrd's system
+            manager process is passed to the main system manager, which
+            allows later introspection of the state of the services
+            involved in the initrd boot.</para>
+          </listitem>
         </varlistentry>
+
         <varlistentry>
           <term><command>suspend</command></term>
 
@@ -1210,6 +1604,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             </para>
           </listitem>
         </varlistentry>
+
         <varlistentry>
           <term><command>hibernate</command></term>
 
@@ -1219,6 +1614,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             </para>
           </listitem>
         </varlistentry>
+
         <varlistentry>
           <term><command>hybrid-sleep</command></term>
 
@@ -1228,29 +1624,63 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
             <filename>hybrid-sleep.target</filename> target.</para>
           </listitem>
         </varlistentry>
-        <varlistentry>
-          <term><command>switch-root <replaceable>ROOT</replaceable> [<replaceable>INIT</replaceable>]</command></term>
-
-          <listitem>
-            <para>Switches to a different root directory and executes a
-            new system manager process below it. This is intended for
-            usage in initial RAM disks ("initrd"), and will transition
-            from the initrd's system manager process (a.k.a "init"
-            process) to the main system manager process. This call takes two
-            arguments: the directory that is to become the new root directory, and
-            the path to the new system manager binary below it to
-            execute as PID 1. If the latter is omitted or the empty
-            string, a systemd binary will automatically be searched for
-            and used as init. If the system manager path is omitted or
-            equal to the empty string, the state of the initrd's system
-            manager process is passed to the main system manager, which
-            allows later introspection of the state of the services
-            involved in the initrd boot.</para>
-          </listitem>
-        </varlistentry>
       </variablelist>
     </refsect2>
 
+    <refsect2>
+      <title>Parameter Syntax</title>
+
+      <para>Unit commands listed above take either a single unit name
+      (designated as <replaceable>NAME</replaceable>), or multiple
+      unit specifications (designated as
+      <replaceable>PATTERN</replaceable>...). In the first case, the
+      unit name with or without a suffix must be given. If the suffix
+      is not specified, systemctl will append a suitable suffix,
+      <literal>.service</literal> by default, and a type-specific
+      suffix in case of commands which operate only on specific unit
+      types. For example,
+      <programlisting># systemctl start sshd</programlisting> and
+      <programlisting># systemctl start sshd.service</programlisting>
+      are equivalent, as are
+      <programlisting># systemctl isolate default</programlisting>
+      and
+      <programlisting># systemctl isolate default.target</programlisting>
+      Note that (absolute) paths to device nodes are automatically
+      converted to device unit names, and other (absolute) paths to
+      mount unit names.
+      <programlisting># systemctl status /dev/sda
+# systemctl status /home</programlisting>
+      are equivalent to:
+      <programlisting># systemctl status dev-sda.device
+# systemctl status home.mount</programlisting>
+      In the second case, shell-style globs will be matched against
+      currently loaded units; literal unit names, with or without
+      a suffix, will be treated as in the first case. This means that
+      literal unit names always refer to exactly one unit, but globs
+      may match zero units and this is not considered an error.</para>
+
+      <para>Glob patterns use
+      <citerefentry project='man-pages'><refentrytitle>fnmatch</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+      so normal shell-style globbing rules are used, and
+      <literal>*</literal>, <literal>?</literal>,
+      <literal>[]</literal> may be used. See
+      <citerefentry project='man-pages'><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+      for more details. The patterns are matched against the names of
+      currently loaded units, and patterns which do not match anything
+      are silently skipped. For example:
+      <programlisting># systemctl stop sshd@*.service</programlisting>
+      will stop all <filename>sshd@.service</filename> instances.
+      </para>
+
+      <para>For unit file commands, the specified
+      <replaceable>NAME</replaceable> should be the full name of the
+      unit file, or the absolute path to the unit file:
+      <programlisting># systemctl enable foo.service</programlisting>
+      or
+      <programlisting># systemctl link /path/to/foo.service</programlisting>
+      </para>
+    </refsect2>
+
   </refsect1>
 
   <refsect1>
@@ -1265,31 +1695,38 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
 
     <variablelist class='environment-variables'>
       <varlistentry>
-        <term><varname>$SYSTEMD_PAGER</varname></term>
-
-        <listitem>
-          <para>Pager to use when <option>--no-pager</option> is not
-          given; overrides <varname>$PAGER</varname>.  Setting this to
-          an empty string or the value <literal>cat</literal> is
-          equivalent to passing
-          <option>--no-pager</option>.</para>
-        </listitem>
+        <term><varname>$SYSTEMD_EDITOR</varname></term>
+
+        <listitem><para>Editor to use when editing units; overrides
+        <varname>$EDITOR</varname> and <varname>$VISUAL</varname>. If neither
+        <varname>$SYSTEMD_EDITOR</varname> nor <varname>$EDITOR</varname> nor
+        <varname>$VISUAL</varname> are present or if it is set to an empty
+        string or if their execution failed, systemctl will try to execute well
+        known editors in this order:
+        <citerefentry><refentrytitle>nano</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+        <citerefentry><refentrytitle>vim</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+        <citerefentry><refentrytitle>vi</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
+        </para></listitem>
       </varlistentry>
     </variablelist>
+    <xi:include href="less-variables.xml" xpointer="pager"/>
+    <xi:include href="less-variables.xml" xpointer="less"/>
   </refsect1>
 
   <refsect1>
     <title>See Also</title>
     <para>
       <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
-      <citerefentry><refentrytitle>systemadm</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
-      <citerefentry><refentrytitle>systemd.cgroup</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd.resource-management</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
-      <citerefentry><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
-      <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+      <citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+      <citerefentry project='man-pages'><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum></citerefentry>
     </para>
   </refsect1>