mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-12 09:35:54 +07:00
1168 lines
60 KiB
XML
1168 lines
60 KiB
XML
<?xml version='1.0'?> <!--*-nxml-*-->
|
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
|
|
|
<!--
|
|
This file is part of systemd.
|
|
|
|
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
|
|
(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.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
|
-->
|
|
|
|
<refentry id="systemd">
|
|
|
|
<refentryinfo>
|
|
<title>systemd</title>
|
|
<productname>systemd</productname>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<contrib>Developer</contrib>
|
|
<firstname>Lennart</firstname>
|
|
<surname>Poettering</surname>
|
|
<email>lennart@poettering.net</email>
|
|
</author>
|
|
</authorgroup>
|
|
</refentryinfo>
|
|
|
|
<refmeta>
|
|
<refentrytitle>systemd</refentrytitle>
|
|
<manvolnum>1</manvolnum>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>systemd</refname>
|
|
<refname>init</refname>
|
|
<refpurpose>systemd System and Service Manager</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<cmdsynopsis>
|
|
<command>systemd <arg choice="opt" rep="repeat">OPTIONS</arg></command>
|
|
</cmdsynopsis>
|
|
<cmdsynopsis>
|
|
<command>init <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="req">COMMAND</arg></command>
|
|
</cmdsynopsis>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para>systemd is a system and service manager for
|
|
Linux operating systems. When run as first process on
|
|
boot (as PID 1), it acts as init system that brings
|
|
up and maintains userspace services.</para>
|
|
|
|
<para>For compatibility with SysV, if systemd is called
|
|
as <command>init</command> and a PID that is not
|
|
1, it will execute <command>telinit</command> and pass
|
|
all command line arguments unmodified. That means
|
|
<command>init</command> and <command>telinit</command>
|
|
are mostly equivalent when invoked from normal login sessions. See
|
|
<citerefentry><refentrytitle>telinit</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
for more information.</para>
|
|
|
|
<para>When run as system instance, systemd interprets
|
|
the configuration file
|
|
<filename>system.conf</filename>, otherwise
|
|
<filename>user.conf</filename>. See
|
|
<citerefentry><refentrytitle>systemd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
for more information.</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Options</title>
|
|
|
|
<para>The following options are understood:</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><option>-h</option></term>
|
|
<term><option>--help</option></term>
|
|
|
|
<listitem><para>Prints a short help
|
|
text and exits.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--test</option></term>
|
|
|
|
<listitem><para>Determine startup
|
|
sequence, dump it and exit. This is an
|
|
option useful for debugging
|
|
only.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--dump-configuration-items</option></term>
|
|
|
|
<listitem><para>Dump understood unit
|
|
configuration items. This outputs a
|
|
terse but complete list of
|
|
configuration items understood in unit
|
|
definition files.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--introspect=</option></term>
|
|
|
|
<listitem><para>Extract D-Bus
|
|
interface introspection data. This is
|
|
mostly useful at install time
|
|
to generate data suitable for the
|
|
D-Bus interfaces
|
|
repository. Optionally the interface
|
|
name for the introspection data may be
|
|
specified. If omitted, the
|
|
introspection data for all interfaces
|
|
is dumped.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--unit=</option></term>
|
|
|
|
<listitem><para>Set default unit to
|
|
activate on startup. If not specified
|
|
defaults to
|
|
<filename>default.target</filename>.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--system</option></term>
|
|
<term><option>--user</option></term>
|
|
|
|
<listitem><para>Tell systemd to run a
|
|
system instance (resp. user
|
|
instance), even if the process ID is
|
|
not 1 (resp. is 1), i.e. systemd is
|
|
not (resp. is) run as init process.
|
|
Normally it should not be necessary to
|
|
pass these options, as systemd
|
|
automatically detects the mode it is
|
|
started in. These options are hence of
|
|
little use except for debugging. Note
|
|
that it is not supported booting and
|
|
maintaining a full system with systemd
|
|
running in <option>--system</option>
|
|
mode, but PID not 1. In practice,
|
|
passing <option>--system</option> explicitly is
|
|
only useful in conjunction with
|
|
<option>--test</option>.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--dump-core</option></term>
|
|
|
|
<listitem><para>Dump core on
|
|
crash. This switch has no effect when
|
|
run as user
|
|
instance.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--crash-shell</option></term>
|
|
|
|
<listitem><para>Run shell on
|
|
crash. This switch has no effect when
|
|
run as user
|
|
instance.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--confirm-spawn</option></term>
|
|
|
|
<listitem><para>Ask for confirmation
|
|
when spawning processes. This switch
|
|
has no effect when run as user
|
|
instance.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--show-status=</option></term>
|
|
|
|
<listitem><para>Show terse service
|
|
status information while booting. This
|
|
switch has no effect when run as user
|
|
instance. Takes a boolean argument
|
|
which may be omitted which is
|
|
interpreted as
|
|
<option>true</option>.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--sysv-console=</option></term>
|
|
|
|
<listitem><para>Controls whether
|
|
output of SysV init scripts will be
|
|
directed to the console. This switch
|
|
has no effect when run as user
|
|
instance. Takes a boolean argument
|
|
which may be omitted which is
|
|
interpreted as
|
|
<option>true</option>.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--log-target=</option></term>
|
|
|
|
<listitem><para>Set log
|
|
target. Argument must be one of
|
|
<option>console</option>,
|
|
<option>journal</option>,
|
|
<option>syslog</option>,
|
|
<option>kmsg</option>,
|
|
<option>journal-or-kmsg</option>,
|
|
<option>syslog-or-kmsg</option>,
|
|
<option>null</option>.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--log-level=</option></term>
|
|
|
|
<listitem><para>Set log level. As
|
|
argument this accepts a numerical log
|
|
level or the well-known <citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
|
symbolic names (lowercase):
|
|
<option>emerg</option>,
|
|
<option>alert</option>,
|
|
<option>crit</option>,
|
|
<option>err</option>,
|
|
<option>warning</option>,
|
|
<option>notice</option>,
|
|
<option>info</option>,
|
|
<option>debug</option>.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--log-color=</option></term>
|
|
|
|
<listitem><para>Highlight important
|
|
log messages. Argument is a boolean
|
|
value. If the argument is omitted it
|
|
defaults to
|
|
<option>true</option>.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--log-location=</option></term>
|
|
|
|
<listitem><para>Include code location
|
|
in log messages. This is mostly
|
|
relevant for debugging
|
|
purposes. Argument is a boolean
|
|
value. If the argument is omitted
|
|
it defaults to
|
|
<option>true</option>.</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><option>--default-standard-output=</option></term>
|
|
<term><option>--default-standard-error=</option></term>
|
|
|
|
<listitem><para>Sets the default
|
|
output resp. error output for all
|
|
services and sockets, i.e. controls
|
|
the default for
|
|
<option>StandardOutput=</option>
|
|
resp. <option>StandardError=</option>
|
|
(see
|
|
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
for details). Takes one of
|
|
<option>inherit</option>,
|
|
<option>null</option>,
|
|
<option>tty</option>,
|
|
<option>journal</option>,
|
|
<option>journal+console</option>,
|
|
<option>syslog</option>,
|
|
<option>syslog+console</option>,
|
|
<option>kmsg</option>,
|
|
<option>kmsg+console</option>. If the
|
|
argument is omitted
|
|
<option>--default-standard-output=</option>
|
|
defaults to <option>journal</option>
|
|
and
|
|
<option>--default-standard-error=</option>
|
|
to
|
|
<option>inherit</option>.</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Concepts</title>
|
|
|
|
<para>systemd provides a dependency system between
|
|
various entities called "units". Units encapsulate
|
|
various objects that are relevant for system boot-up
|
|
and maintenance. The majority of units are configured
|
|
in unit configuration files, whose syntax and basic
|
|
set of options is described in
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
however some are created automatically from other
|
|
configuration or dynamically from system state. Units
|
|
may be 'active' (meaning started, bound, plugged in,
|
|
... depending on the unit type, see below), or
|
|
'inactive' (meaning stopped, unbound, unplugged, ...),
|
|
as well as in the process of being activated or
|
|
deactivated, i.e. between the two states (these states
|
|
are called 'activating', 'deactivating'). A special
|
|
'failed' state is available as well which is very
|
|
similar to 'inactive' and is entered when the service
|
|
failed in some way (process returned error code on
|
|
exit, or crashed, or an operation timed out). If this
|
|
state is entered the cause will be logged, for later
|
|
reference. Note that the various unit types may have a
|
|
number of additional substates, which are mapped to
|
|
the five generalized unit states described
|
|
here.</para>
|
|
|
|
<para>The following unit types are available:</para>
|
|
|
|
<orderedlist>
|
|
<listitem><para>Service units, which control
|
|
daemons and the processes they consist of. For
|
|
details see
|
|
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
|
|
|
|
<listitem><para>Socket units, which
|
|
encapsulate local IPC or network sockets in
|
|
the system, useful for socket-based
|
|
activation. For details about socket units see
|
|
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
for details on socket-based activation and
|
|
other forms of activation, see
|
|
<citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para></listitem>
|
|
|
|
<listitem><para>Target units are useful to
|
|
group units, or provide well-known
|
|
synchronization points during boot-up, see
|
|
<citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
|
|
|
|
<listitem><para>Device units expose kernel
|
|
devices in systemd and may be used to
|
|
implement device-based activation. For details
|
|
see
|
|
<citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
|
|
|
|
<listitem><para>Mount units control mount
|
|
points in the file system, for details see
|
|
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
|
|
|
|
<listitem><para>Automount units provide
|
|
automount capabilities, for on-demand mounting
|
|
of file systems as well as parallelized
|
|
boot-up. See
|
|
<citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
|
|
|
|
<listitem><para>Snapshot units can be used to
|
|
temporarily save the state of the set of
|
|
systemd units, which later may be restored by
|
|
activating the saved snapshot unit. For more
|
|
information see
|
|
<citerefentry><refentrytitle>systemd.snapshot</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
|
|
|
|
<listitem><para>Timer units are useful for
|
|
triggering activation of other units based on
|
|
timers. You may find details in
|
|
<citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
|
|
|
|
<listitem><para>Swap units are very similar to
|
|
mount units and encapsulate memory swap
|
|
partitions or files of the operating
|
|
system. They are described in <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
|
|
|
|
<listitem><para>Path units may be used
|
|
to activate other services when file system
|
|
objects change or are modified. See
|
|
<citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
|
|
|
|
</orderedlist>
|
|
|
|
<para>Units are named as their configuration
|
|
files. Some units have special semantics. A detailed
|
|
list is available in
|
|
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
|
|
|
|
<para>systemd knows various kinds of dependencies,
|
|
including positive and negative requirement
|
|
dependencies (i.e. <varname>Requires=</varname> and
|
|
<varname>Conflicts=</varname>) as well as ordering
|
|
dependencies (<varname>After=</varname> and
|
|
<varname>Before=</varname>). NB: ordering and
|
|
requirement dependencies are orthogonal. If only a
|
|
requirement dependency exists between two units
|
|
(e.g. <filename>foo.service</filename> requires
|
|
<filename>bar.service</filename>), but no ordering
|
|
dependency (e.g. <filename>foo.service</filename>
|
|
after <filename>bar.service</filename>) and both are
|
|
requested to start, they will be started in
|
|
parallel. It is a common pattern that both requirement
|
|
and ordering dependencies are placed between two
|
|
units. Also note that the majority of dependencies are
|
|
implicitly created and maintained by systemd. In most
|
|
cases it should be unnecessary to declare additional
|
|
dependencies manually, however it is possible to do
|
|
this.</para>
|
|
|
|
<para>Application programs and units (via
|
|
dependencies) may request state changes of units. In
|
|
systemd, these requests are encapsulated as 'jobs' and
|
|
maintained in a job queue. Jobs may succeed or can
|
|
fail, their execution is ordered based on the ordering
|
|
dependencies of the units they have been scheduled
|
|
for.</para>
|
|
|
|
<para>On boot systemd activates the target unit
|
|
<filename>default.target</filename> whose job is to
|
|
activate on-boot services and other on-boot units by
|
|
pulling them in via dependencies. Usually the unit
|
|
name is just an alias (symlink) for either
|
|
<filename>graphical.target</filename> (for
|
|
fully-featured boots into the UI) or
|
|
<filename>multi-user.target</filename> (for limited
|
|
console-only boots for use in embedded or server
|
|
environments, or similar; a subset of
|
|
graphical.target). However it is at the discretion of
|
|
the administrator to configure it as an alias to any
|
|
other target unit. See
|
|
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
|
for details about these target units.</para>
|
|
|
|
<para>Processes systemd spawns are placed in
|
|
individual Linux control groups named after the unit
|
|
which they belong to in the private systemd
|
|
hierarchy. (see <ulink
|
|
url="http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">cgroups.txt</ulink>
|
|
for more information about control groups, or short
|
|
"cgroups"). systemd uses this to effectively keep
|
|
track of processes. Control group information is
|
|
maintained in the kernel, and is accessible via the
|
|
file system hierarchy (beneath
|
|
<filename>/sys/fs/cgroup/systemd/</filename>), or in tools
|
|
such as
|
|
<citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
|
(<command>ps xawf -eo pid,user,cgroup,args</command>
|
|
is particularly useful to list all processes and the
|
|
systemd units they belong to.).</para>
|
|
|
|
<para>systemd is compatible with the SysV init system
|
|
to a large degree: SysV init scripts are supported and
|
|
simply read as an alternative (though limited)
|
|
configuration file format. The SysV
|
|
<filename>/dev/initctl</filename> interface is
|
|
provided, and compatibility implementations of the
|
|
various SysV client tools are available. In addition to
|
|
that, various established Unix functionality such as
|
|
<filename>/etc/fstab</filename> or the
|
|
<filename>utmp</filename> database are
|
|
supported.</para>
|
|
|
|
<para>systemd has a minimal transaction system: if a
|
|
unit is requested to start up or shut down it will add
|
|
it and all its dependencies to a temporary
|
|
transaction. Then, it will verify if the transaction
|
|
is consistent (i.e. whether the ordering of all units
|
|
is cycle-free). If it is not, systemd will try to fix
|
|
it up, and removes non-essential jobs from the
|
|
transaction that might remove the loop. Also, systemd
|
|
tries to suppress non-essential jobs in the
|
|
transaction that would stop a running service. Finally
|
|
it is checked whether the jobs of the transaction
|
|
contradict jobs that have already been queued, and
|
|
optionally the transaction is aborted then. If all
|
|
worked out and the transaction is consistent and
|
|
minimized in its impact it is merged with all already
|
|
outstanding jobs and added to the run
|
|
queue. Effectively this means that before executing a
|
|
requested operation, systemd will verify that it makes
|
|
sense, fixing it if possible, and only failing if it
|
|
really cannot work.</para>
|
|
|
|
<para>Systemd contains native implementations of
|
|
various tasks that need to be executed as part of the
|
|
boot process. For example, it sets the host name or
|
|
configures the loopback network device. It also sets
|
|
up and mounts various API file systems, such as
|
|
<filename>/sys</filename> or
|
|
<filename>/proc</filename>.</para>
|
|
|
|
<para>For more information about the concepts and
|
|
ideas behind systemd please refer to the <ulink
|
|
url="http://0pointer.de/blog/projects/systemd.html">Original
|
|
Design Document</ulink>.</para>
|
|
|
|
<para>Note that some but not all interfaces provided
|
|
by systemd are covered by the <ulink
|
|
url="http://www.freedesktop.org/wiki/Software/systemd/InterfaceStabilityPromise">Interface
|
|
Stability Promise</ulink>.</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Directories</title>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>System unit directories</term>
|
|
|
|
<listitem><para>The systemd system
|
|
manager reads unit configuration from
|
|
various directories. Packages that
|
|
want to install unit files shall place
|
|
them in the directory returned by
|
|
<command>pkg-config systemd
|
|
--variable=systemdsystemunitdir</command>. Other
|
|
directories checked are
|
|
<filename>/usr/local/lib/systemd/system</filename>
|
|
and
|
|
<filename>/usr/lib/systemd/system</filename>. User
|
|
configuration always takes
|
|
precedence. <command>pkg-config
|
|
systemd
|
|
--variable=systemdsystemconfdir</command>
|
|
returns the path of the system
|
|
configuration directory. Packages
|
|
should alter the content of these
|
|
directories only with the
|
|
<command>enable</command> and
|
|
<command>disable</command> commands of
|
|
the
|
|
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
|
tool.</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>User unit directories</term>
|
|
|
|
<listitem><para>Similar rules apply
|
|
for the user unit
|
|
directories. However, here the <ulink
|
|
url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
|
|
Base Directory specification</ulink>
|
|
is followed to find
|
|
units. Applications should place their
|
|
unit files in the directory returned
|
|
by <command>pkg-config systemd
|
|
--variable=systemduserunitdir</command>. Global
|
|
configuration is done in the directory
|
|
reported by <command>pkg-config
|
|
systemd
|
|
--variable=systemduserconfdir</command>. The
|
|
<command>enable</command> and
|
|
<command>disable</command> commands of
|
|
the
|
|
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
|
tool can handle both global (i.e. for
|
|
all users) and private (for one user)
|
|
enabling/disabling of
|
|
units.</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>SysV init scripts directory</term>
|
|
|
|
<listitem><para>The location of the
|
|
SysV init script directory varies
|
|
between distributions. If systemd
|
|
cannot find a native unit file for a
|
|
requested service, it will look for a
|
|
SysV init script of the same name
|
|
(with the
|
|
<filename>.service</filename> suffix
|
|
removed).</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>SysV runlevel link farm directory</term>
|
|
|
|
<listitem><para>The location of the
|
|
SysV runlevel link farm directory
|
|
varies between distributions. systemd
|
|
will take the link farm into account
|
|
when figuring out whether a service
|
|
shall be enabled. Note that a service
|
|
unit with a native unit configuration
|
|
file cannot be started by activating it
|
|
in the SysV runlevel link
|
|
farm.</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Signals</title>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>SIGTERM</term>
|
|
|
|
<listitem><para>Upon receiving this
|
|
signal the systemd system manager
|
|
serializes its state, reexecutes
|
|
itself and deserializes the saved
|
|
state again. This is mostly equivalent
|
|
to <command>systemctl
|
|
daemon-reexec</command>.</para>
|
|
|
|
<para>systemd user managers will
|
|
start the
|
|
<filename>exit.target</filename> unit
|
|
when this signal is received. This is
|
|
mostly equivalent to
|
|
<command>systemctl --user start
|
|
exit.target</command>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGINT</term>
|
|
|
|
<listitem><para>Upon receiving this
|
|
signal the systemd system manager will
|
|
start the
|
|
<filename>ctrl-alt-del.target</filename> unit. This
|
|
is mostly equivalent to
|
|
<command>systemctl start
|
|
ctl-alt-del.target</command>.</para>
|
|
|
|
<para>systemd user managers
|
|
treat this signal the same way as
|
|
SIGTERM.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGWINCH</term>
|
|
|
|
<listitem><para>When this signal is
|
|
received the systemd system manager
|
|
will start the
|
|
<filename>kbrequest.target</filename>
|
|
unit. This is mostly equivalent to
|
|
<command>systemctl start
|
|
kbrequest.target</command>.</para>
|
|
|
|
<para>This signal is ignored by
|
|
systemd user
|
|
managers.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGPWR</term>
|
|
|
|
<listitem><para>When this signal is
|
|
received the systemd manager
|
|
will start the
|
|
<filename>sigpwr.target</filename>
|
|
unit. This is mostly equivalent to
|
|
<command>systemctl start
|
|
sigpwr.target</command>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGUSR1</term>
|
|
|
|
<listitem><para>When this signal is
|
|
received the systemd manager will try
|
|
to reconnect to the D-Bus
|
|
bus.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGUSR2</term>
|
|
|
|
<listitem><para>When this signal is
|
|
received the systemd manager will log
|
|
its complete state in human readable
|
|
form. The data logged is the same as
|
|
printed by <command>systemctl
|
|
dump</command>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGHUP</term>
|
|
|
|
<listitem><para>Reloads the complete
|
|
daemon configuration. This is mostly
|
|
equivalent to <command>systemctl
|
|
daemon-reload</command>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+0</term>
|
|
|
|
<listitem><para>Enters default mode, starts the
|
|
<filename>default.target</filename>
|
|
unit. This is mostly equivalent to
|
|
<command>systemctl start
|
|
default.target</command>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+1</term>
|
|
|
|
<listitem><para>Enters rescue mode,
|
|
starts the
|
|
<filename>rescue.target</filename>
|
|
unit. This is mostly equivalent to
|
|
<command>systemctl isolate
|
|
rescue.target</command>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+2</term>
|
|
|
|
<listitem><para>Enters emergency mode,
|
|
starts the
|
|
<filename>emergency.service</filename>
|
|
unit. This is mostly equivalent to
|
|
<command>systemctl isolate
|
|
emergency.service</command>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+3</term>
|
|
|
|
<listitem><para>Halts the machine,
|
|
starts the
|
|
<filename>halt.target</filename>
|
|
unit. This is mostly equivalent to
|
|
<command>systemctl start
|
|
halt.target</command>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+4</term>
|
|
|
|
<listitem><para>Powers off the machine,
|
|
starts the
|
|
<filename>poweroff.target</filename>
|
|
unit. This is mostly equivalent to
|
|
<command>systemctl start
|
|
poweroff.target</command>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+5</term>
|
|
|
|
<listitem><para>Reboots the machine,
|
|
starts the
|
|
<filename>reboot.target</filename>
|
|
unit. This is mostly equivalent to
|
|
<command>systemctl start
|
|
reboot.target</command>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+6</term>
|
|
|
|
<listitem><para>Reboots the machine via kexec,
|
|
starts the
|
|
<filename>kexec.target</filename>
|
|
unit. This is mostly equivalent to
|
|
<command>systemctl start
|
|
kexec.target</command>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+13</term>
|
|
|
|
<listitem><para>Immediately halts the machine.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+14</term>
|
|
|
|
<listitem><para>Immediately powers off the machine.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+15</term>
|
|
|
|
<listitem><para>Immediately reboots the machine.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+16</term>
|
|
|
|
<listitem><para>Immediately reboots the machine with kexec.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+20</term>
|
|
|
|
<listitem><para>Enables display of
|
|
status messages on the console, as
|
|
controlled via
|
|
<varname>systemd.show_status=1</varname>
|
|
on the kernel command
|
|
line.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+21</term>
|
|
|
|
<listitem><para>Disables display of
|
|
status messages on the console, as
|
|
controlled via
|
|
<varname>systemd.show_status=0</varname>
|
|
on the kernel command
|
|
line.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+22</term>
|
|
<term>SIGRTMIN+23</term>
|
|
|
|
<listitem><para>Sets the log level to
|
|
<literal>debug</literal>
|
|
(resp. <literal>info</literal> on
|
|
<literal>SIGRTMIN+23</literal>), as
|
|
controlled via
|
|
<varname>systemd.log_level=debug</varname>
|
|
(resp. <varname>systemd.log_level=info</varname>
|
|
on <literal>SIGRTMIN+23</literal>) on
|
|
the kernel command
|
|
line.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>SIGRTMIN+26</term>
|
|
<term>SIGRTMIN+27</term>
|
|
<term>SIGRTMIN+28</term>
|
|
<term>SIGRTMIN+29</term>
|
|
|
|
<listitem><para>Sets the log level to
|
|
<literal>journal-or-kmsg</literal>
|
|
(resp. <literal>console</literal> on
|
|
<literal>SIGRTMIN+27</literal>;
|
|
resp. <literal>kmsg</literal> on
|
|
<literal>SIGRTMIN+28</literal>;
|
|
resp. <literal>syslog-or-kmsg</literal>
|
|
on <literal>SIGRTMIN+29</literal>), as
|
|
controlled via
|
|
<varname>systemd.log_target=journal-or-kmsg</varname>
|
|
(resp. <varname>systemd.log_target=console</varname>
|
|
on <literal>SIGRTMIN+27</literal>;
|
|
resp. <varname>systemd.log_target=kmsg</varname>
|
|
on <literal>SIGRTMIN+28</literal>;
|
|
resp
|
|
<varname>systemd.log_target=syslog-or-kmsg</varname>
|
|
on <literal>SIGRTMIN+29</literal>) on
|
|
the kernel command
|
|
line.</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Environment</title>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><varname>$SYSTEMD_LOG_LEVEL</varname></term>
|
|
<listitem><para>systemd reads the
|
|
log level from this environment
|
|
variable. This can be overridden with
|
|
<option>--log-level=</option>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>$SYSTEMD_LOG_TARGET</varname></term>
|
|
<listitem><para>systemd reads the
|
|
log target from this environment
|
|
variable. This can be overridden with
|
|
<option>--log-target=</option>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>$SYSTEMD_LOG_COLOR</varname></term>
|
|
<listitem><para>Controls whether
|
|
systemd highlights important log
|
|
messages. This can be overridden with
|
|
<option>--log-color=</option>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>$SYSTEMD_LOG_LOCATION</varname></term>
|
|
<listitem><para>Controls whether
|
|
systemd prints the code location along
|
|
with log messages. This can be
|
|
overridden with
|
|
<option>--log-location=</option>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>$XDG_CONFIG_HOME</varname></term>
|
|
<term><varname>$XDG_CONFIG_DIRS</varname></term>
|
|
<term><varname>$XDG_DATA_HOME</varname></term>
|
|
<term><varname>$XDG_DATA_DIRS</varname></term>
|
|
|
|
<listitem><para>The systemd user
|
|
manager uses these variables in
|
|
accordance to the <ulink
|
|
url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
|
|
Base Directory specification</ulink>
|
|
to find its configuration.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>$SYSTEMD_UNIT_PATH</varname></term>
|
|
|
|
<listitem><para>Controls where systemd
|
|
looks for unit
|
|
files.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>$SYSTEMD_SYSVINIT_PATH</varname></term>
|
|
|
|
<listitem><para>Controls where systemd
|
|
looks for SysV init scripts.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>$SYSTEMD_SYSVRCND_PATH</varname></term>
|
|
|
|
<listitem><para>Controls where systemd
|
|
looks for SysV init script runlevel link
|
|
farms.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>$LISTEN_PID</varname></term>
|
|
<term><varname>$LISTEN_FDS</varname></term>
|
|
|
|
<listitem><para>Set by systemd for
|
|
supervised processes during
|
|
socket-based activation. See
|
|
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
|
for more information.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>$NOTIFY_SOCKET</varname></term>
|
|
|
|
<listitem><para>Set by systemd for
|
|
supervised processes for status and
|
|
start-up completion notification. See
|
|
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
|
for more information.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Kernel Command Line</title>
|
|
|
|
<para>When run as system instance systemd parses a
|
|
number of kernel command line
|
|
arguments<footnote><para>If run inside a Linux
|
|
container these arguments may be passed as command
|
|
line arguments to systemd itself, next to any of the
|
|
command line options listed in the Options section
|
|
above. If run outside of Linux containers, these
|
|
arguments are parsed from
|
|
<filename>/proc/cmdline</filename>
|
|
instead.</para></footnote>:</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><varname>systemd.unit=</varname></term>
|
|
|
|
<listitem><para>Overrides the unit to
|
|
activate on boot. Defaults to
|
|
<filename>default.target</filename>. This
|
|
may be used to temporarily boot into a
|
|
different boot unit, for example
|
|
<filename>rescue.target</filename> or
|
|
<filename>emergency.service</filename>. See
|
|
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
|
for details about these
|
|
units.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>systemd.dump_core=</varname></term>
|
|
|
|
<listitem><para>Takes a boolean
|
|
argument. If <option>true</option>
|
|
systemd dumps core when it
|
|
crashes. Otherwise no core dump is
|
|
created. Defaults to
|
|
<option>true</option>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>systemd.crash_shell=</varname></term>
|
|
|
|
<listitem><para>Takes a boolean
|
|
argument. If <option>true</option>
|
|
systemd spawns a shell when it
|
|
crashes. Otherwise no shell is
|
|
spawned. Defaults to
|
|
<option>false</option>, for security
|
|
reasons, as the shell is not protected
|
|
by any password
|
|
authentication.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>systemd.crash_chvt=</varname></term>
|
|
|
|
<listitem><para>Takes an integer
|
|
argument. If positive systemd
|
|
activates the specified virtual
|
|
terminal when it crashes. Defaults to
|
|
<literal>-1</literal>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>systemd.confirm_spawn=</varname></term>
|
|
|
|
<listitem><para>Takes a boolean
|
|
argument. If <option>true</option>
|
|
asks for confirmation when spawning
|
|
processes. Defaults to
|
|
<option>false</option>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>systemd.show_status=</varname></term>
|
|
|
|
<listitem><para>Takes a boolean
|
|
argument. If <option>true</option>
|
|
shows terse service status updates on
|
|
the console during bootup. Defaults to
|
|
<option>true</option>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>systemd.sysv_console=</varname></term>
|
|
|
|
<listitem><para>Takes a boolean
|
|
argument. If <option>true</option>
|
|
output of SysV init scripts will be
|
|
directed to the console. Defaults to
|
|
<option>true</option>, unless
|
|
<option>quiet</option> is passed as
|
|
kernel command line option in which
|
|
case it defaults to
|
|
<option>false</option>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>systemd.log_target=</varname></term>
|
|
<term><varname>systemd.log_level=</varname></term>
|
|
<term><varname>systemd.log_color=</varname></term>
|
|
<term><varname>systemd.log_location=</varname></term>
|
|
|
|
<listitem><para>Controls log output,
|
|
with the same effect as the
|
|
<varname>$SYSTEMD_LOG_TARGET</varname>, <varname>$SYSTEMD_LOG_LEVEL</varname>, <varname>$SYSTEMD_LOG_COLOR</varname>, <varname>$SYSTEMD_LOG_LOCATION</varname>
|
|
environment variables described above.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>systemd.default_standard_output=</varname></term>
|
|
<term><varname>systemd.default_standard_error=</varname></term>
|
|
<listitem><para>Controls default
|
|
standard output/error output for
|
|
services, with the same effect as the
|
|
<option>--default-standard-output=</option>
|
|
resp. <option>--default-standard-error=</option>
|
|
command line arguments described
|
|
above.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>systemd.setenv=</varname></term>
|
|
|
|
<listitem><para>Takes a string
|
|
argument in the form
|
|
VARIABLE=VALUE. May be used to set
|
|
environment variables for the init
|
|
process and all its children at boot
|
|
time. May be used more than once to
|
|
set multiple variables. If the equal
|
|
sign and variable are missing unsets
|
|
an environment variable which might be
|
|
passed in from the initial ram
|
|
disk.</para></listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Sockets and FIFOs</title>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><filename>/run/systemd/notify</filename></term>
|
|
|
|
<listitem><para>Daemon status
|
|
notification socket. This is an
|
|
AF_UNIX datagram socket and is used to
|
|
implement the daemon notification
|
|
logic as implemented by
|
|
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></listitem>
|
|
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><filename>/run/systemd/shutdownd</filename></term>
|
|
|
|
<listitem><para>Used internally by the
|
|
<citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
tool to implement delayed
|
|
shutdowns. This is an AF_UNIX datagram
|
|
socket.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><filename>/run/systemd/private</filename></term>
|
|
|
|
<listitem><para>Used internally as
|
|
communication channel between
|
|
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
|
and the systemd process. This is an
|
|
AF_UNIX stream socket. This interface
|
|
is private to systemd and should not
|
|
be used in external
|
|
projects.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><filename>/dev/initctl</filename></term>
|
|
|
|
<listitem><para>Limited compatibility
|
|
support for the SysV client interface,
|
|
as implemented by the
|
|
<filename>systemd-initctl.service</filename>
|
|
unit. This is a named pipe in the file
|
|
system. This interface is obsolete and
|
|
should not be used in new
|
|
applications.</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
<para>
|
|
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemadm</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|