chiark / gitweb /
update TODO
[elogind.git] / man / systemctl.xml
index e3a07d5d033f744f782cf17b1b1b47a4a60428a4..e3d22a7b5bf000281d7e849c10182b144b51a405 100644 (file)
@@ -8,20 +8,20 @@
   Copyright 2010 Lennart Poettering
 
   systemd is free software; you can redistribute it and/or modify it
-  under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2 of the License, or
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 of the License, or
   (at your option) any later version.
 
   systemd is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-  General Public License for more details.
+  Lesser General Public License for more details.
 
-  You should have received a copy of the GNU General Public License
+  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="systemd-install">
+<refentry id="systemctl">
 
         <refentryinfo>
                 <title>systemctl</title>
@@ -44,7 +44,7 @@
 
         <refnamediv>
                 <refname>systemctl</refname>
-                <refpurpose>Control the systemd system and session manager</refpurpose>
+                <refpurpose>Control the systemd system and service manager</refpurpose>
         </refnamediv>
 
         <refsynopsisdiv>
@@ -59,7 +59,7 @@
                 <para><command>systemctl</command> may be used to
                 introspect and control the state of the
                 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
-                system and session manager.</para>
+                system and service manager.</para>
         </refsect1>
 
         <refsect1>
                                 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>--type=</option></term>
                                 <term><option>-t</option></term>
                                 similar.</para></listitem>
                         </varlistentry>
 
+                        <varlistentry>
+                                <term><option>--property=</option></term>
+                                <term><option>-p</option></term>
+
+                                <listitem><para>When showing
+                                unit/job/manager properties, limit
+                                display to certain properties as
+                                specified as argument. If not
+                                specified all set properties are
+                                shown. The argument should be a
+                                property name, such as
+                                <literal>MainPID</literal>. If
+                                specified more than once all
+                                properties with the specified names
+                                are shown.</para></listitem>
+                        </varlistentry>
+
                         <varlistentry>
                                 <term><option>--all</option></term>
                                 <term><option>-a</option></term>
 
                                 <listitem><para>When listing units,
                                 show all units, regardless of their
-                                state, including inactive
-                                units.</para></listitem>
+                                state, including inactive units. When
+                                showing unit/job/manager properties,
+                                show all properties regardless whether
+                                they are set or not.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--replace</option></term>
+                                <term><option>--failed</option></term>
 
-                                <listitem><para>If the requested
-                                operation conflicts with an existing
-                                unfinished operation, replace the
-                                existing operation by the requested
-                                operation. If this is not specified
-                                the requested operation will
-                                fail.</para></listitem>
+                                <listitem><para>When listing units,
+                                show only failed units. Do not confuse
+                                with
+                                <option>--fail</option>.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--system</option></term>
+                                <term><option>--full</option></term>
 
-                                <listitem><para>Talk to the systemd
-                                system manager. (Default)</para></listitem>
+                                <listitem><para>Do not ellipsize unit
+                                names and truncate unit descriptions
+                                in the output of
+                                <command>list-units</command> and
+                                <command>list-jobs</command>.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--session</option></term>
+                                <term><option>--fail</option></term>
 
-                                <listitem><para>Talk to the systemd
-                                session manager of the calling user.</para></listitem>
+                                <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></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--no-block</option></term>
-
-                               <listitem><para>Do not synchronously wait for
-                               the requested operation to finish. If this is
-                               not specified the job will be verified,
-                               enqueued and <command>systemctl</command> will
-                               wait until it is completed. By passing this
-                               argument it is only verified and
-                               enqueued.</para></listitem> </varlistentry>
+                                <term><option>--ignore-dependencies</option></term>
+
+                                <listitem><para>When enqueuing a new
+                                job ignore all its dependencies and
+                                execute it immediately. If passed no
+                                required units of the unit passed will
+                                be pulled in, and no ordering
+                                dependencies will be honoured. This is
+                                mostly a debugging and rescue tool for
+                                the administrator and should not be
+                                used by
+                                applications.</para></listitem>
+                        </varlistentry>
 
                         <varlistentry>
                                 <term><option>--quiet</option></term>
                                 <term><option>-q</option></term>
 
                                 <listitem><para>Suppress output to
-                                STDOUT for <command>snapshot</command>
-                                and
-                                <command>check</command>.</para></listitem>
+                                STDOUT in
+                                <command>snapshot</command>,
+                                <command>is-active</command>,
+                                <command>enable</command> and
+                                <command>disable</command>.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--no-block</option></term>
+
+                                <listitem><para>Do not synchronously wait for
+                                the requested operation to finish. If this is
+                                not specified the job will be verified,
+                                enqueued and <command>systemctl</command> will
+                                wait until it is completed. By passing this
+                                argument it is only verified and
+                                enqueued.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--no-legend</option></term>
+
+                                <listitem><para>Do not print a legend, i.e.
+                                the column headers and the footer with hints.
+                                </para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--no-pager</option></term>
+
+                                <listitem><para>Do not pipe output into a
+                                pager.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--system</option></term>
+
+                                <listitem><para>Talk to the systemd
+                                system manager. (Default)</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--user</option></term>
+
+                                <listitem><para>Talk to the systemd
+                                manager of the calling user.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--order</option></term>
+                                <term><option>--require</option></term>
+
+                                <listitem><para>When used in
+                                conjunction with the
+                                <command>dot</command> command (see
+                                below), selects which dependencies are
+                                shown in the dependency graph. If
+                                <option>--order</option> is passed
+                                only dependencies of type
+                                <varname>After=</varname> or
+                                <varname>Before=</varname> are
+                                shown. If <option>--require</option>
+                                is passed only dependencies of type
+                                <varname>Requires=</varname>,
+                                <varname>RequiresOverridable=</varname>,
+                                <varname>Requisite=</varname>,
+                                <varname>RequisiteOverridable=</varname>,
+                                <varname>Wants=</varname> and
+                                <varname>Conflicts=</varname> are
+                                shown. If neither is passed, shows
+                                dependencies of all these
+                                types.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 message before
                                 halt, power-off, reboot.</para></listitem>
                         </varlistentry>
-                </variablelist>
 
-                <para>The following commands are understood:</para>
+                        <varlistentry>
+                                <term><option>--global</option></term>
+
+                                <listitem><para>When used with
+                                <command>enable</command> and
+                                <command>disable</command>, operate on the
+                                global user configuration
+                                directory, thus enabling or disabling
+                                a unit file globally for all future
+                                logins of all users.</para></listitem>
+                        </varlistentry>
 
-                <variablelist>
                         <varlistentry>
-                                <term><command>list-units</command></term>
+                                <term><option>--no-reload</option></term>
+
+                                <listitem><para>When used with
+                                <command>enable</command> and
+                                <command>disable</command>, do not
+                                implicitly reload daemon configuration
+                                after executing the
+                                changes.</para></listitem>
+                        </varlistentry>
 
-                                <listitem><para>List known units.</para></listitem>
+                        <varlistentry>
+                                <term><option>--no-ask-password</option></term>
+
+                                <listitem><para>When used with
+                                <command>start</command> and related
+                                commands, disables asking for
+                                passwords. Background services may
+                                require input of a password or
+                                passphrase string, for example to
+                                unlock system hard disks or
+                                cryptographic certificates. Unless
+                                this option is specified and the
+                                command is invoked from a terminal
+                                <command>systemctl</command> will
+                                query the user on the terminal for the
+                                necessary secrets. Use this option to
+                                switch this behavior off. In this case
+                                the password must be supplied by some
+                                other means (for example graphical
+                                password agents) or the service might
+                                fail. This also disables querying the
+                                user for authentication for privileged
+                                operations.</para></listitem>
                         </varlistentry>
+
                         <varlistentry>
-                                <term><command>list-jobs</command></term>
+                                <term><option>--kill-who=</option></term>
+
+                                <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></listitem>
+                        </varlistentry>
 
-                                <listitem><para>List jobs that are in progress.</para></listitem>
+                        <varlistentry>
+                                <term><option>--signal=</option></term>
+                                <term><option>-s</option></term>
+
+                                <listitem><para>When used with
+                                <command>kill</command>, choose which
+                                signal to send to selected
+                                processes. Must be one of the well
+                                known signal specifiers such as
+                                SIGTERM, SIGINT or SIGSTOP. If
+                                omitted defaults to
+                                <option>SIGTERM</option>.</para></listitem>
                         </varlistentry>
+
                         <varlistentry>
-                                <term><command>clear-jobs</command></term>
+                                <term><option>--force</option></term>
+                                <term><option>-f</option></term>
+
+                                <listitem><para>When used with
+                                <command>enable</command>, overwrite any
+                                existing conflicting
+                                symlinks.</para></listitem>
+
+                                <listitem><para>When used with
+                                <command>halt</command>,
+                                <command>poweroff</command>,
+                                <command>reboot</command> or
+                                <command>kexec</command> execute the
+                                selected operation without shutting
+                                down all units. However, all processes
+                                will be killed forcibly and all file
+                                systems are unmounted or remounted
+                                read-only. This is hence a drastic but
+                                relatively 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 systems. Warning: specifying
+                                <option>--force</option> twice with
+                                any of these operations might result
+                                in data loss.</para></listitem>
+                        </varlistentry>
 
-                                <listitem><para>Cancel all jobs that are in progress.</para></listitem>
+                        <varlistentry>
+                                <term><option>--root=</option></term>
+
+                                <listitem><para>When used with
+                                <command>enable</command>/<command>disable</command>/<command>is-enabled</command> (and
+                                related commands), use alternative
+                                root path when looking for unit
+                                files.</para></listitem>
                         </varlistentry>
+
                         <varlistentry>
-                                <term><command>load [NAME...]</command></term>
+                                <term><option>--runtime</option></term>
+
+                                <listitem><para>When used with
+                                <command>enable</command>/<command>disable</command>/<command>is-enabled</command> (and related commands), make
+                                changes only temporarily, so that they
+                                are dropped on the next reboot. This
+                                will have the effect that changes are
+                                not made in subdirectories of
+                                <filename>/etc</filename> but in
+                                <filename>/run</filename>, with
+                                identical immediate effects, however,
+                                since the latter is lost on reboot,
+                                the changes are lost
+                                too.</para></listitem>
+                        </varlistentry>
 
-                                <listitem><para>Load one or more units
-                                specified on the command line. This
-                                will simply load their configuration
-                                from disk, but not start them. To
-                                start them you need to use the
-                                <command>start</command> command which
-                                will implicitly load a unit that has
-                                not been loaded yet. Note that systemd
-                                garbage collects loaded units that are
-                                not active or referenced by an active
-                                unit. This means that units loaded
-                                this way will usually not stay loaded
-                                for long. Also note that this command
-                                cannot be used to reload unit
-                                configuration. Use the
-                                <command>daemon-reload</command>
-                                command for that. All in all, this
-                                command is of little use except for
-                                debugging.</para>
-                                <para>This command should not be
-                                confused with the
-                                <command>daemon-reload</command> or
-                                <command>reload</command>
-                                commands.</para></listitem>
+                        <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 @,
+                                to connect to. This will use SSH to
+                                talk to the remote systemd
+                                instance.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><command>cancel [JOB...]</command></term>
+                                <term><option>-P</option></term>
+                                <term><option>--privileged</option></term>
 
-                                <listitem><para>Cancel one or more
-                                jobs specified on the command line by
-                                their numeric job
-                                IDs.</para></listitem>
+                                <listitem><para>Acquire privileges via
+                                PolicyKit before executing the
+                                operation.</para></listitem>
                         </varlistentry>
+
                         <varlistentry>
-                                <term><command>start [NAME...]</command></term>
+                                <term><option>--lines=</option></term>
+                                <term><option>-n</option></term>
+
+                                <listitem><para>When used with
+                                <command>status</command> controls the
+                                number of journal lines to show,
+                                counting from the most recent
+                                ones. Takes a positive integer
+                                argument. Defaults to
+                                10.</para></listitem>
+                        </varlistentry>
 
-                                <listitem><para>Start one or more
-                                units specified on the command
-                                line.</para></listitem>
+                        <varlistentry>
+                                <term><option>--follow</option></term>
+                                <term><option>-f</option></term>
+
+                                <listitem><para>When used with
+                                <command>status</command> continously
+                                prints new journal entries as they are
+                                appended to the
+                                journal.</para></listitem>
                         </varlistentry>
+
                         <varlistentry>
-                                <term><command>stop [NAME...]</command></term>
+                                <term><option>--output=</option></term>
+                                <term><option>-o</option></term>
+
+                                <listitem><para>When used with
+                                <command>status</command> controls the
+                                formatting of the journal entries that
+                                are shown. For the available choices
+                                see
+                                <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>. Defaults
+                                to
+                                <literal>short</literal>.</para></listitem>
+                        </varlistentry>
+
+                </variablelist>
+
+                <para>The following commands are understood:</para>
+
+                <variablelist>
+                        <varlistentry>
+                                <term><command>list-units</command></term>
 
-                                <listitem><para>Stop one or more units
-                                specified on the command
+                                <listitem><para>List known units.</para></listitem>
+                        </varlistentry>
+                        <varlistentry>
+                                <term><command>start [NAME...]</command></term>
+
+                                <listitem><para>Start (activate) one
+                                or more units specified on the command
                                 line.</para></listitem>
                         </varlistentry>
                         <varlistentry>
-                                <term><command>restart [NAME...]</command></term>
+                                <term><command>stop [NAME...]</command></term>
 
-                                <listitem><para>Restart one or more
-                                units specified on the command
+                                <listitem><para>Stop (deactivate) one
+                                or more units specified on the command
                                 line.</para></listitem>
                         </varlistentry>
                         <varlistentry>
                                 <term><command>reload [NAME...]</command></term>
 
-                                <listitem><para>Asks all services
-                                whose units are listed on the command
-                                line to reload their
+                                <listitem><para>Asks all units listed
+                                on the command line to reload their
                                 configuration. Note that this will
-                                reload the daemon configuration
-                                itself, not the unit configuration
-                                file of systemd. If you want systemd
-                                to reload the configuration file of a
-                                unit use the
+                                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
                                 <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>
+                                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 [NAME...]</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 [NAME...]</command></term>
+
+                                <listitem><para>Restart one or more
+                                units specified on the command
+                                line if the units are running. Do
+                                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 [NAME...]</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 [NAME...]</command></term>
+
+                                <listitem><para>Reload one or more
+                                units if they support it. If not,
+                                restart them instead. Do 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 [NAME]</command></term>
 
                                 <listitem><para>Start the unit
                                 specified on the command line and its
-                                dependencies and stop all
-                                others.</para></listitem>
+                                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 works 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>check [NAME...]</command></term>
+                                <term><command>kill [NAME...]</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 [NAME...]</command></term>
 
                                 <listitem><para>Check whether any of
-                                the specified units is active
-                                (i.e. running). Returns 0 if at least
-                                one is active, non-zero
+                                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>monitor</command></term>
+                                <term><command>status [NAME...|PID...]</command></term>
+
+                                <listitem><para>Show terse runtime
+                                status information about one or more
+                                units, followed by its most recent log
+                                data from the journal. This function
+                                is intended to generate human-readable
+                                output. If you are looking for
+                                computer-parsable output, use
+                                <command>show</command> instead. If a
+                                PID is passed information about the
+                                unit the process of the PID belongs to
+                                is shown.</para></listitem>
+                        </varlistentry>
+                        <varlistentry>
+                                <term><command>show [NAME...|JOB...]</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>help [NAME...|PID...]</command></term>
 
-                                <listitem><para>Monitor unit/job
-                                changes. This is mostly useful for
-                                debugging purposes and prints a line
-                                each time systemd loads or unloads a
-                                unit configuration file, or a unit
-                                property changes.</para></listitem>
+                                <listitem><para>Show manual pages for
+                                one or more units, if available. If a
+                                PID is passed the manual pages for the
+                                unit the process of the PID belongs to
+                                is shown.</para></listitem>
+                        </varlistentry>
+                        <varlistentry>
+                                <term><command>reset-failed [NAME...]</command></term>
+
+                                <listitem><para>Reset the
+                                '<literal>failed</literal>' state of the
+                                specified units, or if no unit name is
+                                passed 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 [NAME...]</command></term>
+
+                                <listitem><para>Enable one or more
+                                unit files, 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 not have the effect that any of
+                                the units enabled are also started at
+                                the same time. If this is desired a
+                                separate <command>start</command>
+                                command must be invoked for the
+                                unit.</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 his
+                                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 latter case no
+                                systemd daemon configuration is
+                                reloaded.</para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><command>disable [NAME...]</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 is 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>
+                                </listitem>
+
+                                <para>This command honors
+                                <option>--system</option>,
+                                <option>--user</option>,
+                                <option>--global</option> in a similar
+                                way as
+                                <command>enable</command>.</para>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><command>is-enabled [NAME...]</command></term>
+
+                                <listitem><para>Checks whether any of
+                                the specified unit files is 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 [NAME...]</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 [NAME...]</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 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 [NAME...]</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 [NAME...]</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 [NAME...]</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 isn't installed
+                                directly in the unit search
+                                path.</para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><command>load [NAME...]</command></term>
+
+                                <listitem><para>Load one or more units
+                                specified on the command line. This
+                                will simply load their configuration
+                                from disk, but not start them. To
+                                start them you need to use the
+                                <command>start</command> command which
+                                will implicitly load a unit that has
+                                not been loaded yet. Note that systemd
+                                garbage collects loaded units that are
+                                not active or referenced by an active
+                                unit. This means that units loaded
+                                this way will usually not stay loaded
+                                for long. Also note that this command
+                                cannot be used to reload unit
+                                configuration. Use the
+                                <command>daemon-reload</command>
+                                command for that. All in all, this
+                                command is of little use except for
+                                debugging.</para>
+                                <para>This command should not be
+                                confused with the
+                                <command>daemon-reload</command> or
+                                <command>reload</command>
+                                commands.</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 [JOB...]</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>dump</command></term>
                                 be parsed by
                                 applications.</para></listitem>
                         </varlistentry>
+                        <varlistentry>
+                                <term><command>dot</command></term>
+
+                                <listitem><para>Generate textual
+                                dependency graph description in dot
+                                format for further processing with the
+                                GraphViz
+                                <citerefentry><refentrytitle>dot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+                                tool. Use a command line like
+                                <command>systemctl dot | dot -Tsvg >
+                                systemd.svg</command> to generate a
+                                graphical dependency tree. Unless
+                                <option>--order</option> or
+                                <option>--require</option> is passed
+                                the generated graph will show both
+                                ordering and requirement
+                                dependencies.</para></listitem>
+                        </varlistentry>
                         <varlistentry>
                                 <term><command>snapshot [NAME]</command></term>
 
 
                                 <para>A snapshot refers to a saved
                                 state of the systemd manager. It is
-                                implemented itself as unit that is
+                                implemented itself as unit that is
                                 generated dynamically with this
                                 command and has dependencies on all
                                 units active at the time. At a later
                                 unit files and recreate the entire
                                 dependency tree. While the daemon is
                                 reloaded, all sockets systemd listens
-                                on on behalf of user configuration, will
+                                on on behalf of user configuration will
                                 stay accessible.</para> <para>This
                                 command should not be confused with
                                 the <command>load</command> or
                                 configuration will stay
                                 accessible.</para></listitem>
                         </varlistentry>
-                        <varlistentry>
-                                <term><command>daemon-exit</command></term>
-
-                                <listitem><para>Ask the systemd
-                                manager to quit. This is only
-                                supported for session managers
-                                (i.e. in conjunction with the
-                                <option>--session</option> option) and
-                                will fail otherwise.</para></listitem>
-                        </varlistentry>
                         <varlistentry>
                                 <term><command>show-environment</command></term>
 
                                 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>start
+                                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>
 
                                 system. This is mostly equivalent to
                                 <command>start halt.target</command>
                                 but also prints a wall message to all
-                                users.</para></listitem>
+                                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 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>
                                 power-off the system. This is mostly
                                 equivalent to <command>start
                                 poweroff.target</command> but also
-                                prints a wall message to all
-                                users.</para></listitem>
+                                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 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
+                                <listitem><para>Shut down and reboot
+                                the system. This is mostly equivalent
+                                to <command>start
                                 reboot.target</command> but also
-                                prints a wall message to all
-                                users.</para></listitem>
+                                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 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>default</command></term>
+                                <term><command>kexec</command></term>
 
-                                <listitem><para>Enter default
-                                mode. This is mostly equivalent to
-                                <command>start
-                                default.target</command>.</para></listitem>
+                                <listitem><para>Shut down and reboot
+                                the system via kexec. This is mostly
+                                equivalent to <command>start
+                                kexec.target</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>rescue</command></term>
+                                <term><command>exit</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>
+                                <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>emergency</command></term>
+                                <term><command>suspend</command></term>
 
-                                <listitem><para>Enter emergency
-                                mode. This is mostly equivalent to
-                                <command>isolate
-                                emergency.service</command> but also
-                                prints a wall message to all
-                                users.</para></listitem>
+                                <listitem><para>Suspend the system.</para></listitem>
+                        </varlistentry>
+                        <varlistentry>
+                                <term><command>hibernate</command></term>
+
+                                <listitem><para>Hibernate the system.</para></listitem>
+                        </varlistentry>
+                        <varlistentry>
+                                <term><command>switch-root [ROOT] [INIT]</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. Takes two arguments: the
+                                directory to make the new root
+                                directory, and the path to the new
+                                system manager binary below it to
+                                execute as PID 1. If the latter is
+                                ommitted or the empty string, a
+                                systemd binary will automatically be
+                                searched for and used as init. If the
+                                system manager path is ommitted or
+                                equal 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>
 
                 code otherwise.</para>
         </refsect1>
 
+        <refsect1>
+                <title>Environment</title>
+
+                <variablelist>
+                        <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>
+
         <refsect1>
                 <title>See Also</title>
                 <para>
                         <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemadm</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+                        <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+                        <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
-                        <citerefentry><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+                        <citerefentry><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+                        <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>
                 </para>
         </refsect1>