along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-install">
+<refentry id="systemctl">
<refentryinfo>
<title>systemctl</title>
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 information, 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 information,
+ show all properties regardless whether
+ they are set or not.</para></listitem>
</varlistentry>
<varlistentry>
- <term><option>--replace</option></term>
+ <term><option>--full</option></term>
+
+ <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>--fail</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>
+ 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.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><option>--quiet</option></term>
+ <term><option>-q</option></term>
+
+ <listitem><para>Suppress output to
+ STDOUT in
+ <command>snapshot</command>,
+ <command>check</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>--system</option></term>
</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>--quiet</option></term>
- <term><option>-q</option></term>
+ <term><option>--order</option></term>
+ <term><option>--require</option></term>
- <listitem><para>Suppress output to
- STDOUT for <command>snapshot</command>
- and
- <command>check</command>.</para></listitem>
+ <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 session configuĊation
+ directory, thus enabling or disabling
+ a unit file globally for all future
+ sessions of all users.</para></listitem>
+ </varlistentry>
- <variablelist>
<varlistentry>
- <term><command>list-units</command></term>
+ <term><option>--no-reload</option></term>
- <listitem><para>List known units.</para></listitem>
+ <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>
+
<varlistentry>
- <term><command>list-jobs</command></term>
+ <term><option>--kill-mode=</option></term>
- <listitem><para>List jobs that are in progress.</para></listitem>
+ <listitem><para>When used with
+ <command>kill</command>, choose the
+ mode how to kill the selected
+ processes. Must be one of
+ <option>control-group</option>,
+ <option>process-group</option> or
+ <option>process</option> to select
+ whether to kill the entire control
+ group, the process group or only the
+ selected process itself. If ommitted
+ defaults to
+ <option>control-group</option> if
+ <option>--kill-who=all</option> is
+ set, or <option>process</option>
+ otherwise. You probably never need to
+ use this switch.</para></listitem>
</varlistentry>
+
<varlistentry>
- <term><command>clear-jobs</command></term>
+ <term><option>--kill-who=</option></term>
- <listitem><para>Cancel all jobs that are in progress.</para></listitem>
+ <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 ommitted
+ defaults to
+ <option>all</option>.</para></listitem>
</varlistentry>
+
<varlistentry>
- <term><command>load [NAME...]</command></term>
+ <term><option>---signal=</option></term>
+ <term><option>-s</option></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>
+ <listitem><para>When used with
+ <command>kill</command>, choose which
+ signal to send to selected
+ processes. Must be one of the well
+ know signal specifiers such as
+ SIGTERM, SIGINT or SIGSTOP. If
+ ommitted defaults to
+ <option>SIGTERM</option>.</para></listitem>
</varlistentry>
<varlistentry>
- <term><command>cancel [JOB...]</command></term>
+ <term><option>--force</option></term>
+ <term><option>-f</option></term>
- <listitem><para>Cancel one or more
- jobs specified on the command line by
- their numeric job
- IDs.</para></listitem>
+ <listitem><para>When used with
+ <command>enable</command>, override 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
+ 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.</para></listitem>
</varlistentry>
+
<varlistentry>
- <term><command>start [NAME...]</command></term>
+ <term><option>--defaults</option></term>
- <listitem><para>Start one or more
- units specified on the command
- line.</para></listitem>
+ <listitem><para>When used with
+ <command>disable</command>, ensures
+ that only the symlinks created by
+ <command>enable</command> are removed,
+ not all symlinks pointing to the unit
+ file that shall be
+ disabled.</para></listitem>
</varlistentry>
+ </variablelist>
+
+ <para>The following commands are understood:</para>
+
+ <variablelist>
<varlistentry>
- <term><command>stop [NAME...]</command></term>
+ <term><command>list-units</command></term>
+
+ <listitem><para>List known units.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>start [NAME...]</command></term>
- <listitem><para>Stop one or more units
- specified on the command
+ <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 not running yet
+ the operation will
+ fail.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><command>reload-or-restart [NAME...]</command></term>
+ <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. Note that for
+ compatibility with SysV and Red Hat
+ init scripts
+ <command>force-reload</command> and
+ <command>condrestart</command> may be
+ used as equivalent commands to
+ <command>reload-or-try-restart</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
+ (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>status [NAME...|PID...]</command></term>
+
+ <listitem><para>Show terse runtime
+ status information about one or more
+ units. 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>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>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 particular 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>--session</option> or
+ <option>--global</option> is specified
+ this enables the unit for the system,
+ for sessions of the calling user only
+ or for all future session 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 by default removes
+ all symlinks to the unit files
+ (i.e. including manual additions), not
+ just those actually created by
+ <command>enable</command>. If only the
+ symlinks that are suggested by default
+ shall be removed, pass
+ <option>--defaults</option>. This
+ 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 honours
+ <option>--system</option>,
+ <option>--session</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.</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 not job id is specified cancels all jobs that are pending.</para></listitem>
+ </varlistentry>
<varlistentry>
<term><command>monitor</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>
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 killed
+ and all file systems unmounted or
+ mounted read-only, immediately
+ followed by the
+ system halt.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>poweroff</command></term>
equivalent to <command>start
poweroff.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 killed
+ and all file systems unmounted or
+ mounted read-only, immediately
+ followed by the
+ powering off.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>reboot</command></term>
equivalent to <command>start
reboot.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 killed
+ and all file systems unmounted or
+ mounted read-only, immediately
+ followed by the
+ reboot.</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>
- </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>
+ <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 killed
+ and all file systems unmounted or
+ mounted read-only, immediately
+ followed by the
+ reboot.</para></listitem>
</varlistentry>
<varlistentry>
- <term><command>emergency</command></term>
+ <term><command>exit</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>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>
</variablelist>