chiark / gitweb /
sd-login: add a public accessor for the VT number
[elogind.git] / man / systemd.special.xml
index e81e99e44efe07ce4572ae6c9c8d1abec34d3e37..4d0660714531f45d3227de3a5e258fdb0d6e45f8 100644 (file)
@@ -8,16 +8,16 @@
   Copyright 2010 Lennart Poettering
 
   systemd is free software; you can redistribute it and/or modify it
-  under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2 of the License, or
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 of the License, or
   (at your option) any later version.
 
   systemd is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-  General Public License for more details.
+  Lesser General Public License for more details.
 
-  You should have received a copy of the GNU General Public License
+  You should have received a copy of the GNU Lesser General Public License
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 -->
 
 
         <refnamediv>
                 <refname>systemd.special</refname>
-                <refpurpose>special systemd units</refpurpose>
+                <refpurpose>Special systemd units</refpurpose>
         </refnamediv>
 
         <refsynopsisdiv>
-                <para><filename>basic.target</filename></para>
-                <para><filename>ctrl-alt-del.target</filename></para>
-                <para><filename>default.target</filename></para>
-                <para><filename>emergency.service</filename></para>
-                <para><filename>graphical.target</filename></para>
-                <para><filename>halt.target</filename></para>
-                <para><filename>kbrequest.target</filename></para>
-                <para><filename>local-fs.target</filename></para>
-                <para><filename>multi-user.target</filename></para>
-                <para><filename>network.target</filename></para>
-                <para><filename>nss-lookup.target</filename></para>
-                <para><filename>poweroff.target</filename></para>
-                <para><filename>reboot.target</filename></para>
-                <para><filename>remote-fs.target</filename></para>
-                <para><filename>rescue.target</filename></para>
-                <para><filename>rpcbind.target</filename></para>
-                <para><filename>rtc-set.target</filename></para>
-                <para><filename>runlevel0.target</filename>,
-                        <filename>runlevel0.target</filename>,
-                        <filename>runlevel1.target</filename>,
-                        <filename>runlevel2.target</filename>,
-                        <filename>runlevel3.target</filename>,
-                        <filename>runlevel4.target</filename>,
-                        <filename>runlevel5.target</filename>,
-                        <filename>runlevel6.target</filename></para>
-                <para><filename>shutdown.target</filename></para>
-                <para><filename>sigpwr.target</filename></para>
-                <para><filename>sockets.target</filename></para>
-                <para><filename>swap.target</filename></para>
-                <para><filename>syslog.target</filename></para>
-                <para><filename>systemd-initctl.service</filename>, <filename>systemd-initctl.socket</filename></para>
-                <para><filename>systemd-logger.service</filename>, <filename>systemd-logger.socket</filename></para>
+                <para><filename>basic.target</filename>,
+                <filename>bluetooth.target</filename>,
+                <filename>ctrl-alt-del.target</filename>,
+                <filename>cryptsetup.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>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>
                                 <term><filename>basic.target</filename></term>
                                 <listitem>
                                         <para>A special target unit
-                                        covering early boot-up.</para>
+                                        covering basic boot-up.</para>
                                         <para>systemd automatically
                                         adds dependencies of the types
-                                        Requires and After for this
-                                        target unit to all SysV
-                                        service units configured for
-                                        runlevel 1 to 5.</para>
-                                        <para>systemd automatically
-                                        adds dependencies of the types
-                                        Wants and After for all
-                                        SysV service units configured
-                                        for runlevels that are not 0
-                                        to 6 to this target unit.
-                                        This covers the special
-                                        boot-up runlevels some
-                                        distributions have, such as S
-                                        or b.</para>
+                                        <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>
                                         <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>
                                         <filename>multi-user.target</filename>
                                         or
                                         <filename>graphical.target</filename>.</para>
+
                                         <para>The default unit systemd
                                         starts at bootup can be
-                                        overriden with the
-                                        <varname>systemd.default=</varname>
+                                        overridden with the
+                                        <varname>systemd.unit=</varname>
                                         kernel command line option.</para>
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
-                                <term><filename>emergency.service</filename></term>
+                                <term><filename>display-manager.service</filename></term>
                                 <listitem>
-                                        <para>A special service unit
+                                        <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.default=</varname>
+                                        <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>
                                         <filename>multi-user.target</filename>.</para>
 
                                         <para>Units that are needed
-                                        for graphical login shall add
-                                        Wants dependencies for their
-                                        unit to this unit (or
+                                        for graphical logins shall add
+                                        <varname>Wants=</varname>
+                                        dependencies for their unit to
+                                        this unit (or
                                         <filename>multi-user.target</filename>)
-                                        during installation.</para>
+                                        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.</para>
+                                        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 the
+                                        <option>auto</option> and
+                                        <option>x-initrd.mount</option>
+                                        mount options set.
+                                        </para>
+                                </listitem>
+                        </varlistentry>
                         <varlistentry>
                                 <term><filename>kbrequest.target</filename></term>
                                 <listitem>
                                         <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>systemd automatically
+                                        <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
-                                        After to all mount units that
-                                        refer to local mount points
-                                        for this target unit. In
-                                        addition, systemd adds
-                                        dependencies of type Wants to
+                                        <varname>Wants=</varname> to
                                         this target unit for those
                                         mounts listed in
                                         <filename>/etc/fstab</filename>
                                         that have the
-                                        <literal>auto</literal> and
-                                        <literal>comment=systemd.mount</literal>
-                                        mount options set.</para>
-
-                                        <para>systemd automatically
-                                        adds dependencies of type
-                                        After for this target unit to
-                                        all SysV init script service
-                                        units with an LSB header
-                                        referring to the
-                                        <literal>$local_fs</literal>
-                                        facility.</para>
+                                        <option>auto</option> mount
+                                        option set.</para>
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
 
                                         <para>Units that are needed
                                         for a multi-user system shall
-                                        add Wants dependencies to
-                                        this unit for their unit during
-                                        installation.</para>
+                                        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.target</filename></term>
+                                <term><filename>network-online.target</filename></term>
                                 <listitem>
-                                        <para>systemd automatically
-                                        adds dependencies of type
-                                        After for this target unit to
-                                        all SysV init script service
-                                        units with an LSB header
-                                        referring to the
-                                        <literal>$network</literal>
-                                        facility.</para>
-                                </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>nss-lookup.target</filename></term>
+                                <term><filename>paths.target</filename></term>
                                 <listitem>
-                                        <para>systemd automatically
-                                        adds dependencies of type
-                                        After for this target unit to
-                                        all SysV init script service
-                                        units with an LSB header
-                                        referring to the
-                                        <literal>$named</literal>
-                                        facility.</para>
+                                        <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>
 
                                         <para>systemd automatically
                                         adds dependencies of type
-                                        After for this target unit to
-                                        all SysV init script service
-                                        units with an LSB header
-                                        referring to the
-                                        <literal>$remote-fs</literal>
+                                        <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>
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
-                                <term><filename>rpcbind.target</filename></term>
+                                <term><filename>initrd-root-fs.target</filename></term>
                                 <listitem>
-                                        <para>systemd automatically
-                                        adds dependencies of type
-                                        After for this target unit to
-                                        all SysV init script service
-                                        units with an LSB header
-                                        referring to the
-                                        <literal>$rpcbind</literal>
-                                        facility.</para>
+                                        <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>rtc-set.target</filename></term>
+                                <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>systemd automatically
-                                        adds dependencies of type
-                                        After for this target unit to
-                                        all SysV init script service
-                                        units with an LSB header
-                                        referring to the
-                                        <literal>$time</literal>
-                                        facility.</para>
+                                        <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>runlevel0.target</filename></term>
+                                <term><filename>shutdown.target</filename></term>
                                 <listitem>
-                                        <para>This is a target that is
-                                        called whever the SysV
-                                        compatibility code asks for
-                                        runlevel 0. This is an alias
-                                        for
-                                        <filename>poweroff.target</filename>,
-                                        for compatibility with
-                                        SysV.</para>
+                                        <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>runlevel1.target</filename></term>
+                                <term><filename>sigpwr.target</filename></term>
                                 <listitem>
-                                        <para>This is a target that is
-                                        called whever the SysV
-                                        compatibility code asks for
-                                        runlevel 1. This is an alias
-                                        for
-                                        <filename>rescue.target</filename>,
-                                        for compatibility with
-                                        SysV.</para>
+                                        <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>runlevel2.target</filename></term>
+                                <term><filename>sleep.target</filename></term>
                                 <listitem>
-                                        <para>This is a target that is
-                                        called whever the SysV
-                                        compatibility code asks for
-                                        runlevel 2. It is a good idea
-                                        to make this an alias for
-                                        (i.e. symlink to)
-                                        <filename>multi-user.target</filename>.</para>
+                                        <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>runlevel3.target</filename></term>
+                                <term><filename>sockets.target</filename></term>
                                 <listitem>
-                                        <para>This is a target that is
-                                        called whever the SysV
-                                        compatibility code asks for
-                                        runlevel 3. It is a good idea
-                                        to make this an alias for
-                                        (i.e. symlink to)
-                                        <filename>multi-user.target</filename>
-                                        or
-                                        <filename>graphical.target</filename>.</para>
+                                        <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>runlevel4.target</filename></term>
+                                <term><filename>suspend.target</filename></term>
                                 <listitem>
-                                        <para>This is a target that is
-                                        called whever the SysV
-                                        compatibility code asks for
-                                        runlevel 4. It is a good idea
-                                        to make this an alias for
-                                        (i.e. symlink to)
-                                        <filename>multi-user.target</filename>
-                                        or
-                                        <filename>graphical.target</filename>.</para>
+                                        <para>A special target unit
+                                        for suspending the
+                                        system. This pulls in
+                                        <filename>sleep.target</filename>.</para>
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
-                                <term><filename>runlevel5.target</filename></term>
+                                <term><filename>swap.target</filename></term>
                                 <listitem>
-                                        <para>This is a target that is
-                                        called whever the SysV
-                                        compatibility code asks for
-                                        runlevel 5. It is a good idea
-                                        to make this an alias for
-                                        (i.e. symlink to)
-                                        <filename>multi-user.target</filename>
-                                        or
-                                        <filename>graphical.target</filename>.</para>
+                                        <para>Similar to
+                                        <filename>local-fs.target</filename>, but for swap
+                                        partitions and swap
+                                        files.</para>
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
-                                <term><filename>runlevel6.target</filename></term>
+                                <term><filename>sysinit.target</filename></term>
                                 <listitem>
-                                        <para>This is a target that is
-                                        called whever the SysV
-                                        compatibility code asks for
-                                        runlevel 6. This is an alias
-                                        for
-                                        <filename>reboot.target</filename>,
-                                        for compatibility with
-                                        SysV.</para>
+                                        <para>A special target unit
+                                        covering early boot-up scripts.</para>
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
-                                <term><filename>shutdown.target</filename></term>
+                                <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 terminates the services
-                                        on system shutdown.</para>
+                                        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>Services that shall be
-                                        terminated on system shutdown
+                                        <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 service unit during
-                                        installation.</para>
+                                        their mount unit, which is
+                                        implicitly done when
+                                        <varname>DefaultDependencies=yes</varname>
+                                        is set (the default).</para>
+                                </listitem>
+                        </varlistentry>
 
-                                        <para>systemd automatically
-                                        adds dependencies of type
-                                        Conflicts to this target unit
-                                        for all SysV init script
-                                        service units that shall be
-                                        terminated in SysV runlevels 0
-                                        or 6.</para>
+                </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>sigpwr.target</filename></term>
+                                <term><filename>printer.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>
+                                        <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>sockets.target</filename></term>
+                                <term><filename>smartcard.target</filename></term>
                                 <listitem>
-                                        <para>A special target unit
-                                        that sets up all service
-                                        sockets.</para>
+                                        <para>This target is started
+                                        automatically as soon as a
+                                        smartcard controller is
+                                        plugged in or becomes
+                                        available at boot.</para>
 
-                                        <para>Services that can be
-                                        socket-activated shall add
-                                        Wants dependencies to this
-                                        unit for their socket unit
-                                        during installation.</para>
+                                        <para>This may be used to pull
+                                        in smartcard management
+                                        daemons dynamically when
+                                        smartcard hardware is
+                                        found.</para>
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
-                                <term><filename>swap.target</filename></term>
+                                <term><filename>sound.target</filename></term>
                                 <listitem>
-                                        <para>Similar to
-                                        <filename>local-fs.target</filename>, but for swap
-                                        partitions and swap
-                                        files.</para>
+                                        <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>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>syslog.target</filename></term>
+                                <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. 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
-                                        After for this target unit to
-                                        all SysV init script service
-                                        units with an LSB header
-                                        referring to the
-                                        <literal>$syslog</literal>
+                                        <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>
 
-                                        <para>Administrators should
-                                        ensure that this target pulls
-                                        in a service unit with the
-                                        name or alias of
-                                        <filename>@SPECIAL_SYSLOG_SERVICE@</filename>
-                                        (or a socket unit that
-                                        activates this
-                                        service).</para>
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
-                                <term><filename>systemd-initctl.service</filename></term>
+                                <term><filename>nss-lookup.target</filename></term>
                                 <listitem>
-                                        <para>This provides
-                                        compatibility with the SysV
-                                        /dev/initctl file system FIFO
-                                        for communication with the
-                                        init system.</para>
-                                        <para>This is a
-                                        socket-activated service, see
-                                        <filename>system-initctl.socket</filename>.</para>
+                                        <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. 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>systemd-initctl.socket</filename></term>
+                                <term><filename>nss-user-lookup.target</filename></term>
                                 <listitem>
-                                        <para>Socket activation unit
-                                        for
-                                        <filename>system-initctl.service</filename>.</para>
+                                        <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. </para>
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
-                                <term><filename>systemd-logger.service</filename></term>
+                                <term><filename>remote-fs-pre.target</filename></term>
                                 <listitem>
-                                        <para>This is internally used
-                                        by systemd to provide syslog
-                                        logging to the processes it
-                                        maintains.</para>
-                                        <para>This is a
-                                        socket-activated service, see
-                                        <filename>system-logger.socket</filename>.</para>
+                                        <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>
+
+                                        <para>Again, this target unit
+                                        is <emphasis>not</emphasis>
+                                        suitable for pulling in other
+                                        units, it is only useful for
+                                        ordering.</para>
                                 </listitem>
                         </varlistentry>
                         <varlistentry>
-                                <term><filename>systemd-logger.socket</filename></term>
+                                <term><filename>rpcbind.target</filename></term>
                                 <listitem>
-                                        <para>Socket activation unit
-                                        for
-                                        <filename>system-logger.service</filename>. systemd
-                                        will automatically add
-                                        dependencies of types Requires
-                                        and After to all units that
-                                        have been configured for
-                                        stdout or stderr to be
-                                        connected to syslog or the
-                                        kernel log buffer.</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>$portmap</literal>
+                                        facility.</para>
+                                </listitem>
+                        </varlistentry>
+                        <varlistentry>
+                                <term><filename>time-sync.target</filename></term>
+                                <listitem>
+                                        <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>$time</literal>
+                                        facility.</para>
                                 </listitem>
                         </varlistentry>
                 </variablelist>
         </refsect1>
 
         <refsect1>
-                <title>Special Session Units</title>
+                <title>Special User Units</title>
 
-                <para>When systemd runs as a service instance, the
+                <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>local-fs.target</filename>,
-                <filename>remote-fs.target</filename>,
                 <filename>shutdown.target</filename>,
                 <filename>sockets.target</filename>,
-                <filename>swap.target</filename>.</para>
+                <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 defalt, 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.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</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><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+                          <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
                   </para>
         </refsect1>