mirror of
https://github.com/systemd/systemd.git
synced 2024-11-01 00:51:24 +03:00
877 lines
36 KiB
XML
877 lines
36 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 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
|
|
Lesser General Public License for more details.
|
|
|
|
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.special">
|
|
|
|
<refentryinfo>
|
|
<title>systemd.special</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.special</refentrytitle>
|
|
<manvolnum>7</manvolnum>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>systemd.special</refname>
|
|
<refpurpose>Special systemd units</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<para><filename>basic.target</filename>,
|
|
<filename>bluetooth.target</filename>,
|
|
<filename>ctrl-alt-del.target</filename>,
|
|
<filename>cryptsetup.target</filename>,
|
|
<filename>cryptsetup-pre.target</filename>,
|
|
<filename>dbus.service</filename>,
|
|
<filename>dbus.socket</filename>,
|
|
<filename>default.target</filename>,
|
|
<filename>display-manager.service</filename>,
|
|
<filename>emergency.target</filename>,
|
|
<filename>exit.target</filename>,
|
|
<filename>final.target</filename>,
|
|
<filename>getty.target</filename>,
|
|
<filename>graphical.target</filename>,
|
|
<filename>halt.target</filename>,
|
|
<filename>hibernate.target</filename>,
|
|
<filename>hybrid-sleep.target</filename>,
|
|
<filename>initrd-fs.target</filename>,
|
|
<filename>kbrequest.target</filename>,
|
|
<filename>kexec.target</filename>,
|
|
<filename>local-fs.target</filename>,
|
|
<filename>local-fs-pre.target</filename>,
|
|
<filename>multi-user.target</filename>,
|
|
<filename>network.target</filename>,
|
|
<filename>network-online.target</filename>,
|
|
<filename>network-pre.target</filename>,
|
|
<filename>nss-lookup.target</filename>,
|
|
<filename>nss-user-lookup.target</filename>,
|
|
<filename>paths.target</filename>,
|
|
<filename>poweroff.target</filename>,
|
|
<filename>printer.target</filename>,
|
|
<filename>reboot.target</filename>,
|
|
<filename>remote-fs.target</filename>,
|
|
<filename>remote-fs-pre.target</filename>,
|
|
<filename>rescue.target</filename>,
|
|
<filename>initrd-root-fs.target</filename>,
|
|
<filename>rpcbind.target</filename>,
|
|
<filename>runlevel2.target</filename>,
|
|
<filename>runlevel3.target</filename>,
|
|
<filename>runlevel4.target</filename>,
|
|
<filename>runlevel5.target</filename>,
|
|
<filename>shutdown.target</filename>,
|
|
<filename>sigpwr.target</filename>,
|
|
<filename>sleep.target</filename>,
|
|
<filename>smartcard.target</filename>,
|
|
<filename>sockets.target</filename>,
|
|
<filename>sound.target</filename>,
|
|
<filename>suspend.target</filename>,
|
|
<filename>swap.target</filename>,
|
|
<filename>sysinit.target</filename>,
|
|
<filename>syslog.socket</filename>,
|
|
<filename>system-update.target</filename>,
|
|
<filename>time-sync.target</filename>,
|
|
<filename>timers.target</filename>,
|
|
<filename>umount.target</filename>,
|
|
<filename>-.slice</filename>,
|
|
<filename>system.slice</filename>,
|
|
<filename>user.slice</filename>,
|
|
<filename>machine.slice</filename></para>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para>A few units are treated specially by systemd. They have
|
|
special internal semantics and cannot be renamed.</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Special System Units</title>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><filename>basic.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit covering basic boot-up.</para>
|
|
|
|
<para>systemd automatically adds dependencies of the types
|
|
<varname>Requires=</varname> and <varname>After=</varname>
|
|
for this target unit to all services (except for those with
|
|
<varname>DefaultDependencies=no</varname>).</para>
|
|
|
|
<para>Usually this should pull-in all mount points, swap
|
|
devices, sockets, timers, and path units and other basic
|
|
initialization necessary for general purpose daemons.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>ctrl-alt-del.target</filename></term>
|
|
<listitem>
|
|
<para>systemd starts this target whenever Control+Alt+Del is
|
|
pressed on the console. Usually this should be aliased
|
|
(symlinked) to <filename>reboot.target</filename>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>cryptsetup.target</filename></term>
|
|
<listitem>
|
|
<para>A target that pulls in setup services for all
|
|
encrypted block devices.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>dbus.service</filename></term>
|
|
<listitem>
|
|
<para>A special unit for the D-Bus bus daemon. As soon as
|
|
this service is fully started up systemd will connect to it
|
|
and register its service.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>dbus.socket</filename></term>
|
|
<listitem>
|
|
<para>A special unit for the D-Bus system bus socket. All
|
|
units with <varname>Type=dbus</varname> automatically gain a
|
|
dependency on this unit.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>default.target</filename></term>
|
|
<listitem>
|
|
<para>The default unit systemd starts at bootup. Usually
|
|
this should be aliased (symlinked) to
|
|
<filename>multi-user.target</filename> or
|
|
<filename>graphical.target</filename>.</para>
|
|
|
|
<para>The default unit systemd starts at bootup can be
|
|
overridden with the <varname>systemd.unit=</varname> kernel
|
|
command line option.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>display-manager.service</filename></term>
|
|
<listitem>
|
|
<para>The display manager service. Usually this should be
|
|
aliased (symlinked) to <filename>gdm.service</filename> or a
|
|
similar display manager service.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>emergency.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit that starts an emergency shell
|
|
on the main console. This unit is supposed to be used with
|
|
the kernel command line option
|
|
<varname>systemd.unit=</varname> and has otherwise little
|
|
use.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>final.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit that is used during the shutdown
|
|
logic and may be used to pull in late services after all
|
|
normal services are already terminated and all mounts
|
|
unmounted.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>getty.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit that pulls in statically
|
|
configured local TTY <filename>getty</filename> instances.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>graphical.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit for setting up a graphical login
|
|
screen. This pulls in
|
|
<filename>multi-user.target</filename>.</para>
|
|
|
|
<para>Units that are needed for graphical logins shall add
|
|
<varname>Wants=</varname> dependencies for their unit to
|
|
this unit (or <filename>multi-user.target</filename>) during
|
|
installation. This is best configured via
|
|
<varname>WantedBy=graphical.target</varname> in the unit's
|
|
<literal>[Install]</literal> section.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>hibernate.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit for hibernating the system. This
|
|
pulls in <filename>sleep.target</filename>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>hybrid-sleep.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit for hibernating and suspending
|
|
the system at the same time. This pulls in
|
|
<filename>sleep.target</filename>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>halt.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit for shutting down and halting
|
|
the system. Note that this target is distinct from
|
|
<filename>poweroff.target</filename> in that it generally
|
|
really just halts the system rather than powering it
|
|
down.</para>
|
|
|
|
<para>Applications wanting to halt the system should start
|
|
this unit.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>initrd-fs.target</filename></term>
|
|
<listitem>
|
|
<para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
|
automatically adds dependencies of type
|
|
<varname>Before=</varname> to
|
|
<filename>sysroot-usr.mount</filename> and all mount points
|
|
found in <filename>/etc/fstab</filename> that have
|
|
<option>x-initrd.mount</option> and not have
|
|
<option>noauto</option> mount options set.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>kbrequest.target</filename></term>
|
|
<listitem>
|
|
<para>systemd starts this target whenever Alt+ArrowUp is
|
|
pressed on the console. This is a good candidate to be
|
|
aliased (symlinked) to
|
|
<filename>rescue.target</filename>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>kexec.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit for shutting down and rebooting
|
|
the system via kexec.</para>
|
|
|
|
<para>Applications wanting to reboot the system with kexec
|
|
should start this unit.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>local-fs.target</filename></term>
|
|
<listitem>
|
|
<para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
|
automatically adds dependencies of type
|
|
<varname>Before=</varname> to all mount units that refer to
|
|
local mount points for this target unit. In addition, it
|
|
adds dependencies of type <varname>Wants=</varname> to this
|
|
target unit for those mounts listed in
|
|
<filename>/etc/fstab</filename> that have the
|
|
<option>auto</option> mount option set.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>multi-user.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit for setting up a multi-user
|
|
system (non-graphical). This is pulled in by
|
|
<filename>graphical.target</filename>.</para>
|
|
|
|
<para>Units that are needed for a multi-user system shall
|
|
add <varname>Wants=</varname> dependencies for their unit to
|
|
this unit during installation. This is best configured via
|
|
<varname>WantedBy=multi-user.target</varname> in the unit's
|
|
<literal>[Install]</literal> section.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>network-online.target</filename></term>
|
|
<listitem>
|
|
<para>Units that strictly require a configured network
|
|
connection should pull in
|
|
<filename>network-online.target</filename> (via a
|
|
<varname>Wants=</varname> type dependency) and order
|
|
themselves after it. This target unit is intended to pull in
|
|
a service that delays further execution until the network is
|
|
sufficiently set up. What precisely this requires is left to
|
|
the implementation of the network managing service.</para>
|
|
|
|
<para>Note the distinction between this unit and
|
|
<filename>network.target</filename>. This unit is an active
|
|
unit (i.e. pulled in by the consumer rather than the
|
|
provider of this functionality) and pulls in a service which
|
|
possibly adds substantial delays to further execution. In
|
|
contrast, <filename>network.target</filename> is a passive
|
|
unit (i.e. pulled in by the provider of the functionality,
|
|
rather than the consumer) that usually does not delay
|
|
execution much. Usually, <filename>network.target</filename>
|
|
is part of the boot of most systems, while
|
|
<filename>network-online.target</filename> is not, except
|
|
when at least one unit requires it. Also see <ulink
|
|
url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
|
|
Services After the Network is up</ulink> for more
|
|
information.</para>
|
|
|
|
<para>All mount units for remote network file systems
|
|
automatically pull in this unit, and order themselves after
|
|
it. Note that networking daemons that simply provide
|
|
functionality to other hosts generally do not need to pull
|
|
this in.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>paths.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit that sets up all path units (see
|
|
<citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
for details) that shall be active after boot.</para>
|
|
|
|
<para>It is recommended that path units installed by
|
|
applications get pulled in via <varname>Wants=</varname>
|
|
dependencies from this unit. This is best configured via a
|
|
<varname>WantedBy=paths.target</varname> in the path unit's
|
|
<literal>[Install]</literal> section.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>poweroff.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit for shutting down and powering
|
|
off the system.</para>
|
|
|
|
<para>Applications wanting to power off the system should
|
|
start this unit.</para>
|
|
|
|
<para><filename>runlevel0.target</filename> is an alias for
|
|
this target unit, for compatibility with SysV.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>reboot.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit for shutting down and rebooting
|
|
the system.</para>
|
|
|
|
<para>Applications wanting to reboot the system should start
|
|
this unit.</para>
|
|
|
|
<para><filename>runlevel6.target</filename> is an alias for
|
|
this target unit, for compatibility with SysV.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>remote-fs.target</filename></term>
|
|
<listitem>
|
|
<para>Similar to <filename>local-fs.target</filename>, but
|
|
for remote mount points.</para>
|
|
|
|
<para>systemd automatically adds dependencies of type
|
|
<varname>After=</varname> for this target unit to all SysV
|
|
init script service units with an LSB header referring to
|
|
the <literal>$remote_fs</literal> facility.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>rescue.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit for setting up the base system
|
|
and a rescue shell.</para>
|
|
|
|
<para><filename>runlevel1.target</filename> is an alias for
|
|
this target unit, for compatibility with SysV.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>initrd-root-fs.target</filename></term>
|
|
<listitem>
|
|
<para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
|
automatically adds dependencies of type
|
|
<varname>Before=</varname> to the
|
|
<filename>sysroot.mount</filename> unit, which is generated
|
|
from the kernel command line.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>runlevel2.target</filename></term>
|
|
<term><filename>runlevel3.target</filename></term>
|
|
<term><filename>runlevel4.target</filename></term>
|
|
<term><filename>runlevel5.target</filename></term>
|
|
<listitem>
|
|
<para>These are targets that are called whenever the SysV
|
|
compatibility code asks for runlevel 2, 3, 4, 5,
|
|
respectively. It is a good idea to make this an alias for
|
|
(i.e. symlink to) <filename>multi-user.target</filename>
|
|
(for runlevel 2) or <filename>graphical.target</filename>
|
|
(the others).</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>shutdown.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit that terminates the services on
|
|
system shutdown.</para>
|
|
|
|
<para>Services that shall be terminated on system shutdown
|
|
shall add <varname>Conflicts=</varname> dependencies to this
|
|
unit for their service unit, which is implicitly done when
|
|
<varname>DefaultDependencies=yes</varname> is set (the
|
|
default).</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>sigpwr.target</filename></term>
|
|
<listitem>
|
|
<para>A special target that is started when systemd receives
|
|
the SIGPWR process signal, which is normally sent by the
|
|
kernel or UPS daemons when power fails.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>sleep.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit that is pulled in by
|
|
<filename>suspend.target</filename>,
|
|
<filename>hibernate.target</filename> and
|
|
<filename>hybrid-sleep.target</filename> and may be used to
|
|
hook units into the sleep state logic.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>sockets.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit that sets up all socket
|
|
units.(see
|
|
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
for details) that shall be active after boot.</para>
|
|
|
|
<para>Services that can be socket-activated shall add
|
|
<varname>Wants=</varname> dependencies to this unit for
|
|
their socket unit during installation. This is best
|
|
configured via a <varname>WantedBy=sockets.target</varname>
|
|
in the socket unit's <literal>[Install]</literal>
|
|
section.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>suspend.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit for suspending the system. This
|
|
pulls in <filename>sleep.target</filename>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>swap.target</filename></term>
|
|
<listitem>
|
|
<para>Similar to <filename>local-fs.target</filename>, but
|
|
for swap partitions and swap files.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>sysinit.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit covering early boot-up
|
|
scripts.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>syslog.socket</filename></term>
|
|
<listitem>
|
|
<para>The socket unit syslog implementations should listen
|
|
on. All userspace log messages will be made available on
|
|
this socket. For more information about syslog integration,
|
|
please consult the <ulink
|
|
url="http://www.freedesktop.org/wiki/Software/systemd/syslog">Syslog
|
|
Interface</ulink> document.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>system-update.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit that is used for off-line system
|
|
updates.
|
|
<citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
will redirect the boot process to this target if
|
|
<filename>/system-update</filename> exists. For more
|
|
information see the <ulink
|
|
url="http://freedesktop.org/wiki/Software/systemd/SystemUpdates">System
|
|
Updates Specification</ulink>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>timers.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit that sets up all timer units
|
|
(see
|
|
<citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
for details) that shall be active after boot.</para>
|
|
|
|
<para>It is recommended that timer units installed by
|
|
applications get pulled in via <varname>Wants=</varname>
|
|
dependencies from this unit. This is best configured via
|
|
<varname>WantedBy=timers.target</varname> in the timer
|
|
unit's <literal>[Install]</literal> section.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>umount.target</filename></term>
|
|
<listitem>
|
|
<para>A special target unit that umounts all mount and
|
|
automount points on system shutdown.</para>
|
|
|
|
<para>Mounts that shall be unmounted on system shutdown
|
|
shall add Conflicts dependencies to this unit for their
|
|
mount unit, which is implicitly done when
|
|
<varname>DefaultDependencies=yes</varname> is set (the
|
|
default).</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Special System Units for Devices</title>
|
|
|
|
<para>Some target units are automatically pulled in as devices of
|
|
certain kinds show up in the system. These may be used to
|
|
automatically activate various services based on the specific type
|
|
of the available hardware.</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><filename>bluetooth.target</filename></term>
|
|
<listitem>
|
|
<para>This target is started automatically as soon as a
|
|
Bluetooth controller is plugged in or becomes available at
|
|
boot.</para>
|
|
|
|
<para>This may be used to pull in Bluetooth management
|
|
daemons dynamically when Bluetooth hardware is found.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>printer.target</filename></term>
|
|
<listitem>
|
|
<para>This target is started automatically as soon as a
|
|
printer is plugged in or becomes available at boot.</para>
|
|
|
|
<para>This may be used to pull in printer management daemons
|
|
dynamically when printer hardware is found.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>smartcard.target</filename></term>
|
|
<listitem>
|
|
<para>This target is started automatically as soon as a
|
|
smartcard controller is plugged in or becomes available at
|
|
boot.</para>
|
|
|
|
<para>This may be used to pull in smartcard management
|
|
daemons dynamically when smartcard hardware is found.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>sound.target</filename></term>
|
|
<listitem>
|
|
<para>This target is started automatically as soon as a
|
|
sound card is plugged in or becomes available at
|
|
boot.</para>
|
|
|
|
<para>This may be used to pull in audio management daemons
|
|
dynamically when audio hardware is found.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Special Passive System Units </title>
|
|
|
|
<para>A number of special system targets are defined that can be
|
|
used to properly order boot-up of optional services. These targets
|
|
are generally not part of the initial boot transaction, unless
|
|
they are explicitly pulled in by one of the implementing services.
|
|
Note specifically that these <emphasis>passive</emphasis> target
|
|
units are generally not pulled in by the consumer of a service,
|
|
but by the provider of the service. This means: a consuming
|
|
service should order itself after these targets (as appropriate),
|
|
but not pull it in. A providing service should order itself before
|
|
these targets (as appropriate) and pull it in (via a
|
|
<varname>Wants=</varname> type dependency).</para>
|
|
|
|
<para>Note that these passive units cannot be started manually,
|
|
i.e. <literal>systemctl start time-sync.target</literal> will fail
|
|
with an error. They can only be pulled in by dependency. This is
|
|
enforced since they exist for ordering purposes only and thus are
|
|
not useful as only unit within a transaction.</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><filename>cryptsetup-pre.target</filename></term>
|
|
<listitem>
|
|
<para>This passive target unit may be pulled in by services
|
|
that want to run before any encrypted block device is set
|
|
up. All encrypted block devices are set up after this target
|
|
has been reached. Since the shutdown order is implicitly the
|
|
reverse start-up order between units, this target is
|
|
particularly useful to ensure that a service is shut down
|
|
only after all encrypted block devices are fully
|
|
stopped.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>local-fs-pre.target</filename></term>
|
|
<listitem>
|
|
<para>This target unit is
|
|
automatically ordered before
|
|
all local mount points marked
|
|
with <option>auto</option>
|
|
(see above). It can be used to
|
|
execute certain units before
|
|
all local mounts.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>network.target</filename></term>
|
|
<listitem>
|
|
<para>This unit is supposed to indicate when network
|
|
functionality is available, but it is only very weakly
|
|
defined what that is supposed to mean, with one exception:
|
|
at shutdown, a unit that is ordered after
|
|
<filename>network.target</filename> will be stopped before
|
|
the network -- to whatever level it might be set up then --
|
|
is shut down. It is hence useful when writing service files
|
|
that require network access on shutdown, which should order
|
|
themselves after this target, but not pull it in. Also see
|
|
<ulink url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
|
|
Services After the Network is up</ulink> for more
|
|
information. Also see
|
|
<filename>network-online.target</filename> described
|
|
above.</para>
|
|
|
|
<para>systemd automatically adds dependencies of type
|
|
<varname>After=</varname> for this target unit to all SysV
|
|
init script service units with an LSB header referring to
|
|
the <literal>$network</literal> facility.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>network-pre.target</filename></term>
|
|
<listitem>
|
|
<para>This passive target unit may be pulled in by services
|
|
that want to run before any network is set up, for example
|
|
for the purpose of setting up a firewall. All network
|
|
management software orders itself after this target, but
|
|
does not pull it in.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>nss-lookup.target</filename></term>
|
|
<listitem>
|
|
<para>A target that should be used as synchronization point
|
|
for all host/network name service lookups. Note that this is
|
|
independent of user/group name lookups for which
|
|
<filename>nss-user-lookup.target</filename> should be used.
|
|
All services for which the availability of full host/network
|
|
name resolution is essential should be ordered after this
|
|
target, but not pull it in. systemd automatically adds
|
|
dependencies of type <varname>After=</varname> for this
|
|
target unit to all SysV init script service units with an
|
|
LSB header referring to the <literal>$named</literal>
|
|
facility.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>nss-user-lookup.target</filename></term>
|
|
<listitem>
|
|
<para>A target that should be used as synchronization point
|
|
for all user/group name service lookups. Note that this is
|
|
independent of host/network name lookups for which
|
|
<filename>nss-lookup.target</filename> should be used. All
|
|
services for which the availability of the full user/group
|
|
database is essential should be ordered after this target,
|
|
but not pull it in. Note that system users are always
|
|
resolvable, and hence do not require any special ordering
|
|
against this target.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>remote-fs-pre.target</filename></term>
|
|
<listitem>
|
|
<para>This target unit is automatically ordered before all
|
|
remote mount point units (see above). It can be used to run
|
|
certain units before the remote mounts are established. Note
|
|
that this unit is generally not part of the initial
|
|
transaction, unless the unit that wants to be ordered before
|
|
all remote mounts pulls it in via a
|
|
<varname>Wants=</varname> type dependency. If the unit wants
|
|
to be pulled in by the first remote mount showing up, it
|
|
should use <filename>network-online.target</filename> (see
|
|
above).</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>rpcbind.target</filename></term>
|
|
<listitem>
|
|
<para>The portmapper/rpcbind pulls in this target and orders
|
|
itself before it, to indicate its availability. systemd
|
|
automatically adds dependencies of type
|
|
<varname>After=</varname> for this target unit to all SysV
|
|
init script service units with an LSB header referring to
|
|
the <literal>$portmap</literal> facility.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>time-sync.target</filename></term>
|
|
<listitem>
|
|
<para>Services responsible for synchronizing the system
|
|
clock from a remote source (such as NTP client
|
|
implementations) should pull in this target and order
|
|
themselves before it. All services where correct time is
|
|
essential should be ordered after this unit, but not pull it
|
|
in. systemd automatically adds dependencies of type
|
|
<varname>After=</varname> for this target unit to all SysV
|
|
init script service units with an LSB header referring to
|
|
the <literal>$time</literal> facility. </para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Special User Units</title>
|
|
|
|
<para>When systemd runs as a user instance, the following special
|
|
units are available, which have similar definitions as their
|
|
system counterparts:
|
|
<filename>default.target</filename>,
|
|
<filename>shutdown.target</filename>,
|
|
<filename>sockets.target</filename>,
|
|
<filename>timers.target</filename>,
|
|
<filename>paths.target</filename>,
|
|
<filename>bluetooth.target</filename>,
|
|
<filename>printer.target</filename>,
|
|
<filename>smartcard.target</filename>,
|
|
<filename>sound.target</filename>.</para>
|
|
|
|
<para>In addition, the following special unit is understood only
|
|
when systemd runs as service instance:</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><filename>exit.target</filename></term>
|
|
<listitem>
|
|
<para>A special service unit for shutting down the user
|
|
service manager.</para>
|
|
|
|
<para>Applications wanting to terminate the user service
|
|
manager should start this unit. If systemd receives
|
|
<constant>SIGTERM</constant> or <constant>SIGINT</constant>
|
|
when running as user service daemon, it will start this
|
|
unit.</para>
|
|
|
|
<para>Normally, this pulls in
|
|
<filename>shutdown.target</filename> which in turn should be
|
|
conflicted by all units that want to be shut down on user
|
|
service manager exit.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Special Slice Units</title>
|
|
|
|
<para>There are four <literal>.slice</literal> units which form
|
|
the basis of the hierarchy for assignment of resources for
|
|
services, users, and virtual machines or containers.</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><filename>-.slice</filename></term>
|
|
<listitem>
|
|
<para>The root slice is the root of the hierarchy. It
|
|
usually does not contain units directly, but may be used to
|
|
set defaults for the whole tree.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><filename>system.slice</filename></term>
|
|
<listitem>
|
|
<para>By default, all services services started by
|
|
<command>systemd</command> are found in this slice.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><filename>user.slice</filename></term>
|
|
<listitem>
|
|
<para>By default, all user processes and services started on
|
|
behalf of the user, including the per-user systemd instance
|
|
are found in this slice.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><filename>machine.slice</filename></term>
|
|
<listitem>
|
|
<para>By default, all virtual machines and containers
|
|
registered with <command>systemd-machined</command> are
|
|
found in this slice.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
<para>
|
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
<citerefentry project='man-pages'><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|