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