chiark / gitweb /
systemctl: add add-wants and add-requires verbs
[elogind.git] / man / systemctl.xml
index 2a23655cfe9663f08fd212bf3cdd1bf498218a9d..b2aa17f22b0ee7d35522b62799b8c6241e8ffb4e 100644 (file)
@@ -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,9 @@ 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
-        or SUB or ACTIVE states. When listing units, show only those
-        with specified LOAD or SUB or ACTIVE state.</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.</para>
         </listitem>
       </varlistentry>
 
@@ -146,6 +133,18 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
         </listitem>
       </varlistentry>
 
+      <varlistentry>
+        <term><option>-r</option></term>
+        <term><option>--recursive</option></term>
+
+        <listitem>
+          <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>--reverse</option></term>
 
@@ -160,36 +159,40 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
       <varlistentry>
         <term><option>--after</option></term>
-        <term><option>--before</option></term>
 
         <listitem>
-          <para>Show which units are started after or before
-          with <command>list-dependencies</command>, respectively.
-          </para>
+          <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>
         </listitem>
       </varlistentry>
 
       <varlistentry>
-        <term><option>-l</option></term>
-        <term><option>--full</option></term>
+        <term><option>--before</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 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>
         </listitem>
       </varlistentry>
 
       <varlistentry>
-        <term><option>--fail</option></term>
+        <term><option>-l</option></term>
+        <term><option>--full</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>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>
 
@@ -202,27 +205,60 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
       </varlistentry>
 
       <varlistentry>
-        <term><option>--irreversible</option></term>
+        <term><option>--job-mode=</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>
-        </listitem>
-      </varlistentry>
+        <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>
 
-      <varlistentry>
-        <term><option>--ignore-dependencies</option></term>
+        <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>
 
-        <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>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 +273,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 +290,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>
@@ -275,35 +313,13 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
         <term><option>--no-legend</option></term>
 
         <listitem>
-          <para>Do not print a legend, i.e.  the column headers and
+          <para>Do not print the 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>
-
-        <listitem>
-          <para>Talk to the systemd manager of the calling
-          user.</para>
-        </listitem>
-      </varlistentry>
+      <xi:include href="user-system-options.xml" xpointer="user" />
+      <xi:include href="user-system-options.xml" xpointer="system" />
 
       <varlistentry>
         <term><option>--no-wall</option></term>
@@ -361,11 +377,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 +441,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 +465,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>,
           (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 +473,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 +481,16 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
       </varlistentry>
 
       <varlistentry>
-        <term><option>-H</option></term>
-        <term><option>--host</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>
+        <term><option>--preset-mode=</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 +528,12 @@ 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="help" />
+      <xi:include href="standard-options.xml" xpointer="version" />
+      <xi:include href="standard-options.xml" xpointer="no-pager" />
     </variablelist>
   </refsect1>
 
@@ -503,709 +542,1010 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
     <para>The following commands are understood:</para>
 
-    <variablelist>
-      <varlistentry>
-        <term><command>list-units</command></term>
+    <refsect2>
+      <title>Unit Commands</title>
 
-        <listitem>
-          <para>List known units (subject to limitations specified
-          with <option>-t</option>).</para>
+      <variablelist>
+        <varlistentry>
+          <term><command>list-units <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
 
-          <para>This is the default command.</para>
-        </listitem>
-      </varlistentry>
+          <listitem>
+            <para>List known units (subject to limitations specified
+            with <option>-t</option>). If one or more
+            <replaceable>PATTERN</replaceable>s are specified, only
+            units matching one of them are shown.</para>
 
-      <varlistentry>
-        <term><command>list-sockets</command></term>
+            <para>This is the default command.</para>
+          </listitem>
+        </varlistentry>
 
-        <listitem>
-          <para>List socket units ordered by the listening address. Produces output
-          similar to
-          <programlisting>
+        <varlistentry>
+          <term><command>list-sockets <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
+
+          <listitem>
+            <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
 ...
 [::]:22          sshd.socket                 sshd.service
 kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
 
-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>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>start <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Start (activate) one or more units specified on the
-          command line.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>stop <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Stop (deactivate) one or more units specified on the
-          command line.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>reload <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Asks all units listed on the command line to reload
-          their configuration. Note that this will reload the
-          service-specific configuration, not the unit configuration
-          file of systemd. If you want systemd to reload the
-          configuration file of a unit use the
-          <command>daemon-reload</command> command. In other words:
-          for the example case of Apache, this will reload Apache's
-          <filename>httpd.conf</filename> in the web server, not the
-          <filename>apache.service</filename> systemd unit
-          file.</para>
-
-          <para>This command should not be confused with the
-          <command>daemon-reload</command> or <command>load</command>
-          commands.</para>
-        </listitem>
-
-      </varlistentry>
-      <varlistentry>
-        <term><command>restart <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Restart one or more units specified on the command
-          line. If the units are not running yet, they will be
-          started.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>try-restart <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Restart one or more units specified on the command
-          line if the units are running. This does nothing if units are not
-          running.  Note that, for compatibility with Red Hat init
-          scripts, <command>condrestart</command> is equivalent to this
-          command.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>reload-or-restart <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Reload one or more units if they support it. If not,
-          restart them instead. If the units are not running yet, they
-          will be started.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>reload-or-try-restart <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Reload one or more units if they support it. If not,
-          restart them instead. This does nothing if the units are not
-          running. Note that, for compatibility with SysV init scripts,
-          <command>force-reload</command> is equivalent to this
-          command.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>isolate <replaceable>NAME</replaceable></command></term>
-
-        <listitem>
-          <para>Start the unit specified on the command line and its
-          dependencies and stop all others.</para>
-
-          <para>This is similar to changing the runlevel in a
-          traditional init system. The <command>isolate</command>
-          command will immediately stop processes that are not enabled
-          in the new unit, possibly including the graphical
-          environment or terminal you are currently using.</para>
-
-          <para>Note that this is allowed only on units where
-          <option>AllowIsolate=</option> is enabled. See
-          <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-          for details.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>kill <replaceable>NAME</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>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>is-active <replaceable>NAME</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>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>is-failed <replaceable>NAME</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>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>status [<replaceable>NAME</replaceable>...|<replaceable>PID</replaceable>...]</command></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>
-
-          <para>This function is intended to generate human-readable
-          output. If you are looking for computer-parsable output, use
-          <command>show</command> instead.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>show [<replaceable>NAME</replaceable>...|<replaceable>JOB</replaceable>...]</command></term>
-
-        <listitem>
-          <para>Show properties of one or more units, jobs, or the
-          manager itself. If no argument is specified properties of
-          the manager will be shown. If a unit name is specified
-          properties of the unit is shown, and if a job id is
-          specified properties of the job is shown. By default, empty
-          properties are suppressed. Use <option>--all</option> to
-          show those too. To select specific properties to show use
-          <option>--property=</option>. This command is intended to be
-          used whenever computer-parsable output is required. Use
-          <command>status</command> if you are looking for formatted
-          human-readable output.</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
-          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>)
-          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
-          closely the syntax of assignments in unit files.</para>
-
-          <para>Example: <command>systemctl set-property foobar.service CPUShares=777</command></para>
-
-          <para>Note that this command allows changing multiple
-          properties at the same time, which is preferable over
-          setting them individually. Like unit file configuration
-          settings, assigning the empty list to list parameters will
-          reset the list.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>help <replaceable>NAME</replaceable>...|<replaceable>PID</replaceable>...</command></term>
-
-        <listitem>
-          <para>Show manual pages for one or more units, if
-          available. If a PID is given, the manual pages for the unit
-          the process belongs to are shown.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>reset-failed [<replaceable>NAME</replaceable>...]</command></term>
-
-        <listitem>
-          <para>Reset the <literal>failed</literal> state of the
-          specified units, or if no unit name is passed, reset the state of all
-          units. When a unit fails in some way (i.e. process exiting
-          with non-zero error code, terminating abnormally or timing
-          out), it will automatically enter the
-          <literal>failed</literal> state and its exit code and status
-          is recorded for introspection by the administrator until the
-          service is restarted or reset with this command.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>list-unit-files</command></term>
-
-        <listitem>
-          <para>List installed unit files.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>enable <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Enable one or more unit files or unit file instances,
-          as specified on the command line. This will create a number
-          of symlinks as encoded in the <literal>[Install]</literal>
-          sections of the unit files. After the symlinks have been
-          created, the systemd configuration is reloaded (in a way that
-          is equivalent to <command>daemon-reload</command>) to ensure
-          the changes are taken into account immediately. Note that
-          this does <emphasis>not</emphasis> have the effect of also
-          starting any of the units being enabled. If this
-          is desired, a separate <command>start</command> command must
-          be invoked for the unit. Also note that in case of instance
-          enablement, symlinks named the same as instances are created in
-          the install location, however they all point to the same
-          template unit file.</para>
-
-          <para>This command will print the actions executed. This
-          output may be suppressed by passing <option>--quiet</option>.
-          </para>
-
-          <para>Note that this operation creates only the suggested
-          symlinks for the units. While this command is the
-          recommended way to manipulate the unit configuration
-          directory, the administrator is free to make additional
-          changes manually by placing or removing symlinks in the
-          directory. This is particularly useful to create
-          configurations that deviate from the suggested default
-          installation. In this case, the administrator must make sure
-          to invoke <command>daemon-reload</command> manually as
-          necessary to ensure the changes are taken into account.
-          </para>
-
-          <para>Enabling units should not be confused with starting
-          (activating) units, as done by the <command>start</command>
-          command. Enabling and starting units is orthogonal: units
-          may be enabled without being started and started without
-          being enabled. Enabling simply hooks the unit into various
-          suggested places (for example, so that the unit is
-          automatically started on boot or when a particular kind of
-          hardware is plugged in). Starting actually spawns the daemon
-          process (in case of service units), or binds the socket (in
-          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
-          configuration is reloaded.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>disable <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Disables one or more units. This removes all symlinks
-          to the specified unit files from the unit configuration
-          directory, and hence undoes the changes made by
-          <command>enable</command>. Note however that this removes
-          all symlinks to the unit files (i.e. including manual
-          additions), not just those actually created by
-          <command>enable</command>. This call implicitly reloads the
-          systemd daemon configuration after completing the disabling
-          of the units. Note that this command does not implicitly
-          stop the units that are being disabled. If this is desired,
-          an additional <command>stop</command> command should be
-          executed afterwards.</para>
-
-          <para>This command will print the actions executed. This
-          output may be suppressed by passing <option>--quiet</option>.
-          </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>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>reenable <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Reenable one or more unit files, as specified on the
-          command line. This is a combination of
-          <command>disable</command> and <command>enable</command> and
-          is useful to reset the symlinks a unit is enabled with to
-          the defaults configured in the <literal>[Install]</literal>
-          section of the unit file.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>preset <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Reset one or more unit files, as specified on the
-          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
-          <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>
-          document.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>mask <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Mask one or more unit files, as specified on the
-          command line. This will link these units to
-          <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>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>unmask <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Unmask one or more unit files, as specified on the
-          command line. This will undo the effect of
-          <command>mask</command>.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>link <replaceable>FILENAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Link a unit file that is not in the unit file search
-          paths into the unit file search path. This requires an
-          absolute path to a unit file. The effect of this can be
-          undone with <command>disable</command>. The effect of this
-          command is that a unit file is available for
-          <command>start</command> and other commands although it
-          is not installed directly in the unit search path.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>get-default</command></term>
-
-        <listitem>
-          <para>Get the default target specified
-          via <filename>default.target</filename> link.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <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>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>list-jobs</command></term>
-
-        <listitem>
-          <para>List jobs that are in progress.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>cancel <replaceable>JOB</replaceable>...</command></term>
-
-        <listitem>
-          <para>Cancel one or more jobs specified on the command line
-          by their numeric job IDs. If no job ID is specified, cancel
-          all pending jobs.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><command>list-dependencies <replaceable>NAME</replaceable></command></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>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>snapshot [<replaceable>NAME</replaceable>]</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>
-
-          <para>A snapshot refers to a saved state of the systemd
-          manager. It is implemented itself as a unit that is
-          generated dynamically with this command and has dependencies
-          on all units active at the time. At a later time, the user
-          may return to this state by using the
-          <command>isolate</command> command on the snapshot unit.
-          </para>
-
-          <para>Snapshots are only useful for saving and restoring
-          which units are running or are stopped, they do not
-          save/restore any other state. Snapshots are dynamic and lost
-          on reboot.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>delete <replaceable>NAME</replaceable>...</command></term>
-
-        <listitem>
-          <para>Remove a snapshot previously created with
-          <command>snapshot</command>.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <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 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>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>daemon-reexec</command></term>
-
-        <listitem>
-          <para>Reexecute the systemd manager. This will serialize the
-          manager state, reexecute the process and deserialize the
-          state again. This command is of little use except for
-          debugging and package upgrades. Sometimes it might be
-          helpful as a heavy-weight <command>daemon-reload</command>.
-          While the daemon is reexecuted, all sockets systemd listening
-          on behalf of user configuration will stay accessible.
-          </para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>show-environment</command></term>
-
-        <listitem>
-          <para>Dump the systemd manager environment block. The
-          environment block will be dumped in straight-forward form
-          suitable for sourcing into a shell script. This environment
-          block will be passed to all processes the manager
-          spawns.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>set-environment <replaceable>VARIABLE=VALUE</replaceable>...</command></term>
-
-        <listitem>
-          <para>Set one or more systemd manager environment variables,
-          as specified on the command line.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>unset-environment <replaceable>VARIABLE</replaceable>...</command></term>
-
-        <listitem>
-          <para>Unset one or more systemd manager environment
-          variables. If only a variable name is specified, it will be
-          removed regardless of its value. If a variable and a value
-          are specified, the variable is only removed if it has the
-          specified value.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>default</command></term>
-
-        <listitem>
-          <para>Enter default mode. This is mostly equivalent to
-          <command>isolate default.target</command>.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>rescue</command></term>
-
-        <listitem>
-          <para>Enter rescue mode. This is mostly equivalent to
-          <command>isolate rescue.target</command>, but also prints a
-          wall message to all users.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>emergency</command></term>
-
-        <listitem>
-          <para>Enter emergency mode. This is mostly equivalent to
-          <command>isolate emergency.target</command>, but also prints
-          a wall message to all users.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>halt</command></term>
-
-        <listitem>
-          <para>Shut down and halt the system. This is mostly equivalent to
-          <command>start halt.target --irreversible</command>, but also
-          prints a wall message to all users.  If combined with
-          <option>--force</option>, shutdown of all running services is
-          skipped, however all processes are killed and all file
-          systems are unmounted or mounted read-only, immediately
-          followed by the system halt.  If <option>--force</option> is
-          specified twice, the operation is immediately executed
-          without terminating any processes or unmounting any file
-          systems. This may result in data loss.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>poweroff</command></term>
-
-        <listitem>
-          <para>Shut down and power-off the system. This is mostly
-          equivalent to <command>start poweroff.target --irreversible</command>,
-          but also prints a wall message to all users. If combined with
-          <option>--force</option>, shutdown of all running services is
-          skipped, however all processes are killed and all file
-          systems are unmounted or mounted read-only, immediately
-          followed by the powering off. If <option>--force</option> is
-          specified twice, the operation is immediately executed
-          without terminating any processes or unmounting any file
-          systems. This may result in data loss.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>reboot</command></term>
-
-        <listitem>
-          <para>Shut down and reboot the system. This is mostly
-          equivalent to <command>start reboot.target --irreversible</command>,
-          but also prints a wall message to all users. If combined with
-          <option>--force</option>, shutdown of all running services is
-          skipped, however all processes are killed and all file
-          systems are unmounted or mounted read-only, immediately
-          followed by the reboot. If <option>--force</option> is
-          specified twice, the operation is immediately executed
-          without terminating any processes or unmounting any file
-          systems. This may result in data loss.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>kexec</command></term>
-
-        <listitem>
-          <para>Shut down and reboot the system via kexec. This is
-          mostly equivalent to <command>start kexec.target --irreversible</command>,
-          but also prints a wall message to all users. If combined
-          with <option>--force</option>, shutdown of all running
-          services is skipped, however all processes are killed and
-          all file systems are unmounted or mounted read-only,
-          immediately followed by the reboot.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>exit</command></term>
-
-        <listitem>
-          <para>Ask the systemd manager to quit. This is only
-          supported for user service managers (i.e. in conjunction
-          with the <option>--user</option> option) and will fail
-          otherwise.</para>
-        </listitem>
-
-      </varlistentry>
-      <varlistentry>
-        <term><command>suspend</command></term>
-
-        <listitem>
-          <para>Suspend the system. This will trigger activation of
-          the special <filename>suspend.target</filename> target.
-          </para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>hibernate</command></term>
-
-        <listitem>
-          <para>Hibernate the system. This will trigger activation of
-          the special <filename>hibernate.target</filename> target.
-          </para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term><command>hybrid-sleep</command></term>
-
-        <listitem>
-          <para>Hibernate and suspend the system. This will trigger
-          activation of the special
-          <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>
+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>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <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>--failed</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>PATTERN</replaceable>...</command></term>
+
+          <listitem>
+            <para>Stop (deactivate) one or more units specified on the
+            command line.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>reload <replaceable>PATTERN</replaceable>...</command></term>
+
+          <listitem>
+            <para>Asks all units listed on the command line to reload
+            their configuration. Note that this will reload the
+            service-specific configuration, not the unit configuration
+            file of systemd. If you want systemd to reload the
+            configuration file of a unit, use the
+            <command>daemon-reload</command> command. In other words:
+            for the example case of Apache, this will reload Apache's
+            <filename>httpd.conf</filename> in the web server, not the
+            <filename>apache.service</filename> systemd unit
+            file.</para>
+
+            <para>This command should not be confused with the
+            <command>daemon-reload</command> command.</para>
+          </listitem>
+
+        </varlistentry>
+        <varlistentry>
+          <term><command>restart <replaceable>PATTERN</replaceable>...</command></term>
+
+          <listitem>
+            <para>Restart one or more units specified on the command
+            line. If the units are not running yet, they will be
+            started.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>try-restart <replaceable>PATTERN</replaceable>...</command></term>
+
+          <listitem>
+            <para>Restart one or more units specified on the command
+            line if the units are running. This does nothing if units are not
+            running.  Note that, for compatibility with Red Hat init
+            scripts, <command>condrestart</command> is equivalent to this
+            command.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>reload-or-restart <replaceable>PATTERN</replaceable>...</command></term>
+
+          <listitem>
+            <para>Reload one or more units if they support it. If not,
+            restart them instead. If the units are not running yet, they
+            will be started.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>reload-or-try-restart <replaceable>PATTERN</replaceable>...</command></term>
+
+          <listitem>
+            <para>Reload one or more units if they support it. If not,
+            restart them instead. This does nothing if the units are not
+            running. Note that, for compatibility with SysV init scripts,
+            <command>force-reload</command> is equivalent to this
+            command.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>isolate <replaceable>NAME</replaceable></command></term>
+
+          <listitem>
+            <para>Start the unit specified on the command line and its
+            dependencies and stop all others.</para>
+
+            <para>This is similar to changing the runlevel in a
+            traditional init system. The <command>isolate</command>
+            command will immediately stop processes that are not enabled
+            in the new unit, possibly including the graphical
+            environment or terminal you are currently using.</para>
+
+            <para>Note that this is allowed only on units where
+            <option>AllowIsolate=</option> is enabled. See
+            <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+            for details.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <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>--signal=</option> to select
+            the signal to send.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <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
+            <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>PATTERN</replaceable>...</command></term>
+
+          <listitem>
+            <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</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 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. 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</command> <optional><replaceable>PATTERN</replaceable>...|<replaceable>JOB</replaceable>...</optional></term>
+
+          <listitem>
+            <para>Show properties of one or more units, jobs, or the
+            manager itself. If no argument is specified, properties of
+            the manager will be shown. If a unit name is specified,
+            properties of the unit is shown, and if a job id is
+            specified, properties of the job is shown. By default, empty
+            properties are suppressed. Use <option>--all</option> to
+            show those too. To select specific properties to show, use
+            <option>--property=</option>. This command is intended to be
+            used whenever computer-parsable output is required. Use
+            <command>status</command> if you are looking for formatted
+            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 control settings at
+            runtime. Not all properties may be changed at runtime, but
+            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
+            closely the syntax of assignments in unit files.</para>
+
+            <para>Example: <command>systemctl set-property foobar.service CPUShares=777</command></para>
+
+            <para>Note that this command allows changing multiple
+            properties at the same time, which is preferable over
+            setting them individually. Like unit file configuration
+            settings, assigning the empty list to list parameters will
+            reset the list.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>help <replaceable>PATTERN</replaceable>...|<replaceable>PID</replaceable>...</command></term>
+
+          <listitem>
+            <para>Show manual pages for one or more units, if
+            available. If a PID is given, the manual pages for the unit
+            the process belongs to are shown.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>reset-failed [<replaceable>PATTERN</replaceable>...]</command></term>
+
+          <listitem>
+            <para>Reset the <literal>failed</literal> state of the
+            specified units, or if no unit name is passed, reset the state of all
+            units. When a unit fails in some way (i.e. process exiting
+            with non-zero error code, terminating abnormally or timing
+            out), it will automatically enter the
+            <literal>failed</literal> state and its exit code and status
+            is recorded for introspection by the administrator until the
+            service is restarted or reset with this command.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>list-dependencies <replaceable>NAME</replaceable></command></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>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect2>
+
+    <refsect2>
+      <title>Unit File Commands</title>
+
+      <variablelist>
+        <varlistentry>
+          <term><command>list-unit-files <optional><replaceable>PATTERN...</replaceable></optional></command></term>
+
+          <listitem>
+            <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>
+
+        <varlistentry>
+          <term><command>enable <replaceable>NAME</replaceable>...</command></term>
+
+          <listitem>
+            <para>Enable one or more unit files or unit file instances,
+            as specified on the command line. This will create a number
+            of symlinks as encoded in the <literal>[Install]</literal>
+            sections of the unit files. After the symlinks have been
+            created, the systemd configuration is reloaded (in a way that
+            is equivalent to <command>daemon-reload</command>) to ensure
+            the changes are taken into account immediately. Note that
+            this does <emphasis>not</emphasis> have the effect of also
+            starting any of the units being enabled. If this
+            is desired, a separate <command>start</command> command must
+            be invoked for the unit. Also note that in case of instance
+            enablement, symlinks named the same as instances are created in
+            the install location, however they all point to the same
+            template unit file.</para>
+
+            <para>This command will print the actions executed. This
+            output may be suppressed by passing <option>--quiet</option>.
+            </para>
+
+            <para>Note that this operation creates only the suggested
+            symlinks for the units. While this command is the
+            recommended way to manipulate the unit configuration
+            directory, the administrator is free to make additional
+            changes manually by placing or removing symlinks in the
+            directory. This is particularly useful to create
+            configurations that deviate from the suggested default
+            installation. In this case, the administrator must make sure
+            to invoke <command>daemon-reload</command> manually as
+            necessary to ensure the changes are taken into account.
+            </para>
+
+            <para>Enabling units should not be confused with starting
+            (activating) units, as done by the <command>start</command>
+            command. Enabling and starting units is orthogonal: units
+            may be enabled without being started and started without
+            being enabled. Enabling simply hooks the unit into various
+            suggested places (for example, so that the unit is
+            automatically started on boot or when a particular kind of
+            hardware is plugged in). Starting actually spawns the daemon
+            process (in case of service units), or binds the socket (in
+            case of socket units), and so on.</para>
+
+            <para>Depending on whether <option>--system</option>,
+            <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>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>disable <replaceable>NAME</replaceable>...</command></term>
+
+          <listitem>
+            <para>Disables one or more units. This removes all symlinks
+            to the specified unit files from the unit configuration
+            directory, and hence undoes the changes made by
+            <command>enable</command>. Note however that this removes
+            all symlinks to the unit files (i.e. including manual
+            additions), not just those actually created by
+            <command>enable</command>. This call implicitly reloads the
+            systemd daemon configuration after completing the disabling
+            of the units. Note that this command does not implicitly
+            stop the units that are being disabled. If this is desired,
+            an additional <command>stop</command> command should be
+            executed afterwards.</para>
+
+            <para>This command will print the actions executed. This
+            output may be suppressed by passing <option>--quiet</option>.
+            </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>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 is not enabled, but has no provisions for enabling in [Install] section</entry>
+                    <entry>0</entry>
+                  </row>
+                  <row>
+                    <entry><literal>disabled</literal></entry>
+                    <entry>Unit is not enabled</entry>
+                    <entry>1</entry>
+                  </row>
+                </tbody>
+              </tgroup>
+            </table>
+
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>reenable <replaceable>NAME</replaceable>...</command></term>
+
+          <listitem>
+            <para>Reenable one or more unit files, as specified on the
+            command line. This is a combination of
+            <command>disable</command> and <command>enable</command> and
+            is useful to reset the symlinks a unit is enabled with to
+            the defaults configured in the <literal>[Install]</literal>
+            section of the unit file.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>preset <replaceable>NAME</replaceable>...</command></term>
+
+          <listitem>
+            <para>Reset one or more unit files, as specified on the
+            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.</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>
+            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>mask <replaceable>NAME</replaceable>...</command></term>
+
+          <listitem>
+            <para>Mask one or more unit files, as specified on the
+            command line. This will link these units to
+            <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
+            <option>--runtime</option> option to only mask temporarily
+            until the next reboot of the system.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>unmask <replaceable>NAME</replaceable>...</command></term>
+
+          <listitem>
+            <para>Unmask one or more unit files, as specified on the
+            command line. This will undo the effect of
+            <command>mask</command>.</para>
+          </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>
+
+          <listitem>
+            <para>Link a unit file that is not in the unit file search
+            paths into the unit file search path. This requires an
+            absolute path to a unit file. The effect of this can be
+            undone with <command>disable</command>. The effect of this
+            command is that a unit file is available for
+            <command>start</command> and other commands although it
+            is not installed directly in the unit search path.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>get-default</command></term>
+
+          <listitem>
+            <para>Get the default target specified
+            via <filename>default.target</filename> link.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <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>
+          </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>
+    </refsect2>
+
+    <refsect2>
+      <title>Job Commands</title>
+
+      <variablelist>
+        <varlistentry>
+          <term><command>list-jobs <optional><replaceable>PATTERN...</replaceable></optional></command></term>
+
+          <listitem>
+            <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>
+          <term><command>cancel <replaceable>JOB</replaceable>...</command></term>
+
+          <listitem>
+            <para>Cancel one or more jobs specified on the command line
+            by their numeric job IDs. If no job ID is specified, cancel
+            all pending jobs.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect2>
+
+    <refsect2>
+      <title>Snapshot Commands</title>
+
+      <variablelist>
+        <varlistentry>
+          <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 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
+            generated dynamically with this command and has dependencies
+            on all units active at the time. At a later time, the user
+            may return to this state by using the
+            <command>isolate</command> command on the snapshot unit.
+            </para>
+
+            <para>Snapshots are only useful for saving and restoring
+            which units are running or are stopped, they do not
+            save/restore any other state. Snapshots are dynamic and lost
+            on reboot.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>delete <replaceable>PATTERN</replaceable>...</command></term>
+
+          <listitem>
+            <para>Remove a snapshot previously created with
+            <command>snapshot</command>.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect2>
+
+    <refsect2>
+      <title>Environment Commands</title>
+
+      <variablelist>
+        <varlistentry>
+          <term><command>show-environment</command></term>
+
+          <listitem>
+            <para>Dump the systemd manager environment block. The
+            environment block will be dumped in straight-forward form
+            suitable for sourcing into a shell script. This environment
+            block will be passed to all processes the manager
+            spawns.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>set-environment <replaceable>VARIABLE=VALUE</replaceable>...</command></term>
+
+          <listitem>
+            <para>Set one or more systemd manager environment variables,
+            as specified on the command line.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>unset-environment <replaceable>VARIABLE</replaceable>...</command></term>
+
+          <listitem>
+            <para>Unset one or more systemd manager environment
+            variables. If only a variable name is specified, it will be
+            removed regardless of its value. If a variable and a value
+            are specified, the variable is only removed if it has the
+            specified value.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>import-environment <replaceable>VARIABLE</replaceable>...</command></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>
+
+    <refsect2>
+      <title>Manager Lifecycle Commands</title>
+
+      <variablelist>
+        <varlistentry>
+          <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 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>
+          <term><command>daemon-reexec</command></term>
+
+          <listitem>
+            <para>Reexecute the systemd manager. This will serialize the
+            manager state, reexecute the process and deserialize the
+            state again. This command is of little use except for
+            debugging and package upgrades. Sometimes, it might be
+            helpful as a heavy-weight <command>daemon-reload</command>.
+            While the daemon is being reexecuted, all sockets systemd listening
+            on behalf of user configuration will stay accessible.
+            </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect2>
+
+    <refsect2>
+      <title>System Commands</title>
+
+      <variablelist>
+        <varlistentry>
+          <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>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>default</command></term>
+
+          <listitem>
+            <para>Enter default mode. This is mostly equivalent to
+            <command>isolate default.target</command>.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term><command>rescue</command></term>
+
+          <listitem>
+            <para>Enter rescue mode. This is mostly equivalent to
+            <command>isolate rescue.target</command>, but also prints a
+            wall message to all users.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>emergency</command></term>
+
+          <listitem>
+            <para>Enter emergency mode. This is mostly equivalent to
+            <command>isolate emergency.target</command>, but also prints
+            a wall message to all users.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>halt</command></term>
+
+          <listitem>
+            <para>Shut down and halt the system. This is mostly equivalent to
+            <command>start halt.target --irreversible</command>, but also
+            prints a wall message to all users.  If combined with
+            <option>--force</option>, shutdown of all running services is
+            skipped, however all processes are killed and all file
+            systems are unmounted or mounted read-only, immediately
+            followed by the system halt.  If <option>--force</option> is
+            specified twice, the operation is immediately executed
+            without terminating any processes or unmounting any file
+            systems. This may result in data loss.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>poweroff</command></term>
+
+          <listitem>
+            <para>Shut down and power-off the system. This is mostly
+            equivalent to <command>start poweroff.target --irreversible</command>,
+            but also prints a wall message to all users. If combined with
+            <option>--force</option>, shutdown of all running services is
+            skipped, however all processes are killed and all file
+            systems are unmounted or mounted read-only, immediately
+            followed by the powering off. If <option>--force</option> is
+            specified twice, the operation is immediately executed
+            without terminating any processes or unmounting any file
+            systems. This may result in data loss.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>reboot <optional><replaceable>arg</replaceable></optional></command></term>
+
+          <listitem>
+            <para>Shut down and reboot the system. This is mostly
+            equivalent to <command>start reboot.target --irreversible</command>,
+            but also prints a wall message to all users. If combined with
+            <option>--force</option>, shutdown of all running services is
+            skipped, however all processes are killed and all file
+            systems are unmounted or mounted read-only, immediately
+            followed by the reboot. If <option>--force</option> is
+            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>
+
+          <listitem>
+            <para>Shut down and reboot the system via kexec. This is
+            mostly equivalent to <command>start kexec.target --irreversible</command>,
+            but also prints a wall message to all users. If combined
+            with <option>--force</option>, shutdown of all running
+            services is skipped, however all processes are killed and
+            all file systems are unmounted or mounted read-only,
+            immediately followed by the reboot.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>exit</command></term>
+
+          <listitem>
+            <para>Ask the systemd manager to quit. This is only
+            supported for user service managers (i.e. in conjunction
+            with the <option>--user</option> option) and will fail
+            otherwise.</para>
+          </listitem>
+
+        </varlistentry>
+        <varlistentry>
+          <term><command>suspend</command></term>
+
+          <listitem>
+            <para>Suspend the system. This will trigger activation of
+            the special <filename>suspend.target</filename> target.
+            </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>hibernate</command></term>
+
+          <listitem>
+            <para>Hibernate the system. This will trigger activation of
+            the special <filename>hibernate.target</filename> target.
+            </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><command>hybrid-sleep</command></term>
+
+          <listitem>
+            <para>Hibernate and suspend the system. This will trigger
+            activation of the special
+            <filename>hybrid-sleep.target</filename> target.</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>
+      </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 snapshot-11</programlisting>
+      and
+      <programlisting># systemctl isolate snapshot-11.snapshot</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><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><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>
 
@@ -1216,23 +1556,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
     code otherwise.</para>
   </refsect1>
 
-  <refsect1>
-    <title>Environment</title>
-
-    <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>
-      </varlistentry>
-    </variablelist>
-  </refsect1>
+  <xi:include href="less-variables.xml" />
 
   <refsect1>
     <title>See Also</title>
@@ -1242,10 +1566,11 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
       <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
-      <citerefentry><refentrytitle>systemd.cgroupq</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 project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+      <citerefentry><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum></citerefentry>
     </para>
   </refsect1>