<?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>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>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></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>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>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 fround 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> <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>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>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-uer.target</varname> in the unit's <literal>[Install]</literal> section.</para> </listitem> </varlistentry> <varlistentry> <term><filename>network.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>$network</literal> facility.</para> <para>This unit is supposed to indicate when the network is "up", but it is only very loosely defined what that is supposed to mean. Also see <ulink url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running Services After the Network is up</ulink> for more information.</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. 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. </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>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>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>remote-fs-pre.target</filename></term> <listitem> <para>This target unit is automatically ordered before all remote mount points marked with <option>auto</option> (see above). It can be used to execute certain units before all remote mounts.</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>rpcbind.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>$portmap</literal> facility.</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>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 printer management daemons dynamically when smartcard hardware is found.</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>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 printer hardware is found.</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>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> <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 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></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 SIGTERM or SIGINT 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>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>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> </para> </refsect1> </refentry>