diff options
Diffstat (limited to 'man/systemd.special.xml')
-rw-r--r-- | man/systemd.special.xml | 1005 |
1 files changed, 0 insertions, 1005 deletions
diff --git a/man/systemd.special.xml b/man/systemd.special.xml deleted file mode 100644 index d977298cd8..0000000000 --- a/man/systemd.special.xml +++ /dev/null @@ -1,1005 +0,0 @@ -<?xml version='1.0'?> <!--*-nxml-*--> -<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" - "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> - -<!-- - This file is part of systemd. - - Copyright 2010 Lennart Poettering - - systemd is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - systemd is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with systemd; If not, see <http://www.gnu.org/licenses/>. ---> - -<refentry id="systemd.special"> - - <refentryinfo> - <title>systemd.special</title> - <productname>systemd</productname> - - <authorgroup> - <author> - <contrib>Developer</contrib> - <firstname>Lennart</firstname> - <surname>Poettering</surname> - <email>lennart@poettering.net</email> - </author> - </authorgroup> - </refentryinfo> - - <refmeta> - <refentrytitle>systemd.special</refentrytitle> - <manvolnum>7</manvolnum> - </refmeta> - - <refnamediv> - <refname>systemd.special</refname> - <refpurpose>Special systemd units</refpurpose> - </refnamediv> - - <refsynopsisdiv> - <para><filename>basic.target</filename>, - <filename>bluetooth.target</filename>, - <filename>ctrl-alt-del.target</filename>, - <filename>cryptsetup.target</filename>, - <filename>cryptsetup-pre.target</filename>, - <filename>dbus.service</filename>, - <filename>dbus.socket</filename>, - <filename>default.target</filename>, - <filename>display-manager.service</filename>, - <filename>emergency.target</filename>, - <filename>exit.target</filename>, - <filename>final.target</filename>, - <filename>getty.target</filename>, - <filename>graphical.target</filename>, - <filename>halt.target</filename>, - <filename>hibernate.target</filename>, - <filename>hybrid-sleep.target</filename>, - <filename>initrd-fs.target</filename>, - <filename>kbrequest.target</filename>, - <filename>kexec.target</filename>, - <filename>local-fs.target</filename>, - <filename>local-fs-pre.target</filename>, - <filename>multi-user.target</filename>, - <filename>network.target</filename>, - <filename>network-online.target</filename>, - <filename>network-pre.target</filename>, - <filename>nss-lookup.target</filename>, - <filename>nss-user-lookup.target</filename>, - <filename>paths.target</filename>, - <filename>poweroff.target</filename>, - <filename>printer.target</filename>, - <filename>reboot.target</filename>, - <filename>remote-fs.target</filename>, - <filename>remote-fs-pre.target</filename>, - <filename>rescue.target</filename>, - <filename>initrd-root-device.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>slices.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 dependency of the type - <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 local mount points plus - <filename>/var</filename>, <filename>/tmp</filename> and - <filename>/var/tmp</filename>, swap devices, sockets, timers, - path units and other basic initialization necessary for general - purpose daemons. The mentioned mount points are special cased - to allow them to be remote. - </para> - - <para>This target usually does not pull in any non-target units - directly, but rather does so indirectly via other early boot targets. - It is instead meant as a synchronization point for late boot - services. Refer to - <citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry> - for details on the targets involved. - </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 target does not pull in - any services or mounts. It is the most minimal version of starting the system in order to acquire an - interactive shell; the only processes running are usually just the system manager (PID 1) and the shell - process. This unit is supposed to be used with the kernel command line option - <varname>systemd.unit=</varname>; it is also used when a file system check on a required file system fails, - and boot-up cannot continue. Compare with <filename>rescue.target</filename>, which serves a similar purpose, - but also starts the most basic services and mounts all file systems.</para> - - <para>Use the <literal>systemd.unit=emergency.target</literal> kernel command line option to boot into this - mode. A short alias for this kernel command line option is <literal>emergency</literal>, for compatibility - with SysV.</para> - - <para>In many ways booting into <filename>emergency.target</filename> is similar to the effect of booting - with <literal>init=/bin/sh</literal> on the kernel command line, except that emergency mode provides you with - the full system and service manager, and allows starting individual units in order to continue the boot - process in steps.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>exit.target</filename></term> - <listitem> - <para>A special service unit for shutting down the system or - user service manager. It is equivalent to - <filename>poweroff.target</filename> on non-container - systems, and also works in containers.</para> - - <para>systemd will start this unit when it receives a - request to shut down over D-Bus or a - <constant>SIGTERM</constant> or <constant>SIGINT</constant> - signal when running as user service daemon.</para> - - <para>Normally, this (indirectly) pulls in - <filename>shutdown.target</filename>, which in turn should be - conflicted by all units that want to be scheduled for - shutdown when the service manager starts to exit.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>final.target</filename></term> - <listitem> - <para>A special target unit that is used during the shutdown - logic and may be used to pull in late services after all - normal services are already terminated and all mounts - unmounted. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>getty.target</filename></term> - <listitem> - <para>A special target unit that pulls in statically - configured local TTY <filename>getty</filename> instances. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>graphical.target</filename></term> - <listitem> - <para>A special target unit for setting up a graphical login - screen. This pulls in - <filename>multi-user.target</filename>.</para> - - <para>Units that are needed for graphical logins shall add - <varname>Wants=</varname> dependencies for their unit to - this unit (or <filename>multi-user.target</filename>) during - installation. This is best configured via - <varname>WantedBy=graphical.target</varname> in the unit's - <literal>[Install]</literal> section.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>hibernate.target</filename></term> - <listitem> - <para>A special target unit for hibernating the system. This - pulls in <filename>sleep.target</filename>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>hybrid-sleep.target</filename></term> - <listitem> - <para>A special target unit for hibernating and suspending - the system at the same time. This pulls in - <filename>sleep.target</filename>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>halt.target</filename></term> - <listitem> - <para>A special target unit for shutting down and halting - the system. Note that this target is distinct from - <filename>poweroff.target</filename> in that it generally - really just halts the system rather than powering it - down.</para> - - <para>Applications wanting to halt the system should start - this unit.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>initrd-fs.target</filename></term> - <listitem> - <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry> - automatically adds dependencies of type - <varname>Before=</varname> to - <filename>sysroot-usr.mount</filename> and all mount points - found in <filename>/etc/fstab</filename> that have - <option>x-initrd.mount</option> and not have - <option>noauto</option> mount options set.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>kbrequest.target</filename></term> - <listitem> - <para>systemd starts this target whenever Alt+ArrowUp is - pressed on the console. This is a good candidate to be - aliased (symlinked) to - <filename>rescue.target</filename>.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>kexec.target</filename></term> - <listitem> - <para>A special target unit for shutting down and rebooting - the system via kexec.</para> - - <para>Applications wanting to reboot the system with kexec - should start this unit.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>local-fs.target</filename></term> - <listitem> - <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry> - automatically adds dependencies of type - <varname>Before=</varname> to all mount units that refer to - local mount points for this target unit. In addition, it - adds dependencies of type <varname>Wants=</varname> to this - target unit for those mounts listed in - <filename>/etc/fstab</filename> that have the - <option>auto</option> mount option set.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>multi-user.target</filename></term> - <listitem> - <para>A special target unit for setting up a multi-user - system (non-graphical). This is pulled in by - <filename>graphical.target</filename>.</para> - - <para>Units that are needed for a multi-user system shall - add <varname>Wants=</varname> dependencies for their unit to - this unit during installation. This is best configured via - <varname>WantedBy=multi-user.target</varname> in the unit's - <literal>[Install]</literal> section.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>network-online.target</filename></term> - <listitem> - <para>Units that strictly require a configured network - connection should pull in - <filename>network-online.target</filename> (via a - <varname>Wants=</varname> type dependency) and order - themselves after it. This target unit is intended to pull in - a service that delays further execution until the network is - sufficiently set up. What precisely this requires is left to - the implementation of the network managing service.</para> - - <para>Note the distinction between this unit and - <filename>network.target</filename>. This unit is an active - unit (i.e. pulled in by the consumer rather than the - provider of this functionality) and pulls in a service which - possibly adds substantial delays to further execution. In - contrast, <filename>network.target</filename> is a passive - unit (i.e. pulled in by the provider of the functionality, - rather than the consumer) that usually does not delay - execution much. Usually, <filename>network.target</filename> - is part of the boot of most systems, while - <filename>network-online.target</filename> is not, except - when at least one unit requires it. Also see <ulink - url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running - Services After the Network is up</ulink> for more - information.</para> - - <para>All mount units for remote network file systems - automatically pull in this unit, and order themselves after - it. Note that networking daemons that simply provide - functionality to other hosts generally do not need to pull - this in.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>paths.target</filename></term> - <listitem> - <para>A special target unit that sets up all path units (see - <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry> - for details) that shall be active after boot.</para> - - <para>It is recommended that path units installed by - applications get pulled in via <varname>Wants=</varname> - dependencies from this unit. This is best configured via a - <varname>WantedBy=paths.target</varname> in the path unit's - <literal>[Install]</literal> section.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>poweroff.target</filename></term> - <listitem> - <para>A special target unit for shutting down and powering - off the system.</para> - - <para>Applications wanting to power off the system should - start this unit.</para> - - <para><filename>runlevel0.target</filename> is an alias for - this target unit, for compatibility with SysV.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>reboot.target</filename></term> - <listitem> - <para>A special target unit for shutting down and rebooting - the system.</para> - - <para>Applications wanting to reboot the system should start - this unit.</para> - - <para><filename>runlevel6.target</filename> is an alias for - this target unit, for compatibility with SysV.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>remote-fs.target</filename></term> - <listitem> - <para>Similar to <filename>local-fs.target</filename>, but - for remote mount points.</para> - - <para>systemd automatically adds dependencies of type - <varname>After=</varname> for this target unit to all SysV - init script service units with an LSB header referring to - the <literal>$remote_fs</literal> facility.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>rescue.target</filename></term> - <listitem> - <para>A special target unit that pulls in the base system (including system mounts) and spawns a rescue - shell. Isolate to this target in order to administer the system in single-user mode with all file systems - mounted but with no services running, except for the most basic. Compare with - <filename>emergency.target</filename>, which is much more reduced and does not provide the file systems or - most basic services.</para> - - <para><filename>runlevel1.target</filename> is an alias for this target unit, for compatibility with - SysV.</para> - - <para>Use the <literal>systemd.unit=rescue.target</literal> kernel command line option to boot into this - mode. A short alias for this kernel command line option is <literal>1</literal>, for compatibility with - SysV.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>initrd-root-device.target</filename></term> - <listitem> - <para>A special initrd target unit that is reached when the root filesystem device is available, but before - it has been mounted. - <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry> - and - <citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry> - automatically setup the appropriate dependencies to make this happen. - </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>graphical.target</filename> - (for runlevel 5) or <filename>multi-user.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> and - <varname>Before=</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>slices.target</filename></term> - <listitem> - <para>A special target unit that sets up all slice units (see - <citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry> for - details) that shall be active after boot. By default the generic <filename>user.slice</filename>, - <filename>system.slice</filename>, <filename>machines.slice</filename> slice units, as well as the root - slice unit <filename>-.slice</filename> are pulled in and ordered before this unit (see below).</para> - - <para>It's a good idea to add <varname>WantedBy=slices.target</varname> lines to the <literal>[Install]</literal> - section of all slices units that may be installed dynamically.</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>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>This target pulls in the services required for system - initialization. System services pulled in by this target should - declare <varname>DefaultDependencies=no</varname> and specify - all their dependencies manually, including access to anything - more than a read only root filesystem. For details on the - dependencies of this target, refer to - <citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>. - </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 unmounts all mount and - automount points on system shutdown.</para> - - <para>Mounts that shall be unmounted on system shutdown - shall add Conflicts dependencies to this unit for their - mount unit, which is implicitly done when - <varname>DefaultDependencies=yes</varname> is set (the - default).</para> - </listitem> - </varlistentry> - - </variablelist> - </refsect1> - - <refsect1> - <title>Special System Units for Devices</title> - - <para>Some target units are automatically pulled in as devices of - certain kinds show up in the system. These may be used to - automatically activate various services based on the specific type - of the available hardware.</para> - - <variablelist> - <varlistentry> - <term><filename>bluetooth.target</filename></term> - <listitem> - <para>This target is started automatically as soon as a - Bluetooth controller is plugged in or becomes available at - boot.</para> - - <para>This may be used to pull in Bluetooth management - daemons dynamically when Bluetooth hardware is found.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>printer.target</filename></term> - <listitem> - <para>This target is started automatically as soon as a - printer is plugged in or becomes available at boot.</para> - - <para>This may be used to pull in printer management daemons - dynamically when printer hardware is found.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>smartcard.target</filename></term> - <listitem> - <para>This target is started automatically as soon as a - smartcard controller is plugged in or becomes available at - boot.</para> - - <para>This may be used to pull in smartcard management - daemons dynamically when smartcard hardware is found.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>sound.target</filename></term> - <listitem> - <para>This target is started automatically as soon as a - sound card is plugged in or becomes available at - boot.</para> - - <para>This may be used to pull in audio management daemons - dynamically when audio hardware is found.</para> - </listitem> - </varlistentry> - </variablelist> - </refsect1> - - <refsect1> - <title>Special Passive System Units </title> - - <para>A number of special system targets are defined that can be - used to properly order boot-up of optional services. These targets - are generally not part of the initial boot transaction, unless - they are explicitly pulled in by one of the implementing services. - Note specifically that these <emphasis>passive</emphasis> target - units are generally not pulled in by the consumer of a service, - but by the provider of the service. This means: a consuming - service should order itself after these targets (as appropriate), - but not pull it in. A providing service should order itself before - these targets (as appropriate) and pull it in (via a - <varname>Wants=</varname> type dependency).</para> - - <para>Note that these passive units cannot be started manually, - i.e. <literal>systemctl start time-sync.target</literal> will fail - with an error. They can only be pulled in by dependency. This is - enforced since they exist for ordering purposes only and thus are - not useful as only unit within a transaction.</para> - - <variablelist> - <varlistentry> - <term><filename>cryptsetup-pre.target</filename></term> - <listitem> - <para>This passive target unit may be pulled in by services - that want to run before any encrypted block device is set - up. All encrypted block devices are set up after this target - has been reached. Since the shutdown order is implicitly the - reverse start-up order between units, this target is - particularly useful to ensure that a service is shut down - only after all encrypted block devices are fully - stopped.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>local-fs-pre.target</filename></term> - <listitem> - <para>This target unit is - automatically ordered before - all local mount points marked - with <option>auto</option> - (see above). It can be used to - execute certain units before - all local mounts.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>network.target</filename></term> - <listitem> - <para>This unit is supposed to indicate when network - functionality is available, but it is only very weakly - defined what that is supposed to mean, with one exception: - at shutdown, a unit that is ordered after - <filename>network.target</filename> will be stopped before - the network — to whatever level it might be set up then — - is shut down. It is hence useful when writing service files - that require network access on shutdown, which should order - themselves after this target, but not pull it in. Also see - <ulink url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running - Services After the Network is up</ulink> for more - information. Also see - <filename>network-online.target</filename> described - above.</para> - - <para>systemd automatically adds dependencies of type - <varname>After=</varname> for this target unit to all SysV - init script service units with an LSB header referring to - the <literal>$network</literal> facility.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>network-pre.target</filename></term> - <listitem> - <para>This passive target unit may be pulled in by services - that want to run before any network is set up, for example - for the purpose of setting up a firewall. All network - management software orders itself after this target, but - does not pull it in.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>nss-lookup.target</filename></term> - <listitem> - <para>A target that should be used as synchronization point - for all host/network name service lookups. Note that this is - independent of user/group name lookups for which - <filename>nss-user-lookup.target</filename> should be used. - All services for which the availability of full host/network - name resolution is essential should be ordered after this - target, but not pull it in. systemd automatically adds - dependencies of type <varname>After=</varname> for this - target unit to all SysV init script service units with an - LSB header referring to the <literal>$named</literal> - facility.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>nss-user-lookup.target</filename></term> - <listitem> - <para>A target that should be used as synchronization point - for all user/group name service lookups. Note that this is - independent of host/network name lookups for which - <filename>nss-lookup.target</filename> should be used. All - services for which the availability of the full user/group - database is essential should be ordered after this target, - but not pull it in. Note that system users are always - resolvable, and hence do not require any special ordering - against this target.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>remote-fs-pre.target</filename></term> - <listitem> - <para>This target unit is automatically ordered before all - remote mount point units (see above). It can be used to run - certain units before the remote mounts are established. Note - that this unit is generally not part of the initial - transaction, unless the unit that wants to be ordered before - all remote mounts pulls it in via a - <varname>Wants=</varname> type dependency. If the unit wants - to be pulled in by the first remote mount showing up, it - should use <filename>network-online.target</filename> (see - above).</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>rpcbind.target</filename></term> - <listitem> - <para>The portmapper/rpcbind pulls in this target and orders - itself before it, to indicate its availability. systemd - automatically adds dependencies of type - <varname>After=</varname> for this target unit to all SysV - init script service units with an LSB header referring to - the <literal>$portmap</literal> facility.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><filename>time-sync.target</filename></term> - <listitem> - <para>Services responsible for synchronizing the system - clock from a remote source (such as NTP client - implementations) should pull in this target and order - themselves before it. All services where correct time is - essential should be ordered after this unit, but not pull it - in. systemd automatically adds dependencies of type - <varname>After=</varname> for this target unit to all SysV - init script service units with an LSB header referring to - the <literal>$time</literal> facility. </para> - </listitem> - </varlistentry> - </variablelist> - </refsect1> - - <refsect1> - <title>Special User Units</title> - - <para>When systemd runs as a user instance, the following special - units are available, which have similar definitions as their - system counterparts: - <filename>exit.target</filename>, - <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> - </refsect1> - - <refsect1> - <title>Special Passive User Units</title> - - <refsect2> - <title>graphical-session.target</title> - - <para>This target is active whenever any graphical session is running. It - is used to stop user services which only apply to a graphical (X, - Wayland, etc.) session when the session is terminated. Such services - should have <literal>PartOf=graphical-session.target</literal> in their - <literal>[Unit]</literal> section. A target for a particular session - (e. g. <filename>gnome-session.target</filename>) starts and stops - <literal>graphical-session.target</literal> with - <literal>BindsTo=graphical-session.target</literal>.</para> - - <para>Which services are started by a session target is determined by the - <literal>Wants=</literal> and <literal>Requires=</literal> dependencies. - For services that can be enabled independently, symlinks in - <literal>.wants/</literal> and <literal>.requires/</literal> should be - used, see - <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>. - Those symlinks should either be shipped in packages, or should be added - dynamically after installation, for example using <literal>systemctl add-wants</literal>, see - <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>. - </para> - - <example> - <title>Nautilus as part of a GNOME session</title> - - <para><literal>gnome-session.target</literal> pulls in Nautilus as - top-level service:</para> - - <programlisting>[Unit] -Description=User systemd services for GNOME graphical session -Wants=nautilus.service -BindsTo=graphical-session.target - </programlisting> - - <para><literal>nautilus.service</literal> gets stopped when the session stops:</para> - - <programlisting>[Unit] -Description=Render the desktop icons with Nautilus -PartOf=graphical-session.target - -[Service] -... - </programlisting> - </example> - </refsect2> - - <refsect2> - <title>graphical-session-pre.target</title> - - <para>This target contains services which set up the environment or - global configuration of a graphical session, such as SSH/GPG agents - (which need to export an environment variable into all desktop processes) - or migration of obsolete d-conf keys after an OS upgrade (which needs to - happen before starting any process that might use them). This target must - be started before starting a graphical session - like <filename>gnome-session.target</filename>.</para> - </refsect2> - - </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 system services started by - <command>systemd</command> are found in this slice.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><filename>user.slice</filename></term> - <listitem> - <para>By default, all user processes and services started on - behalf of the user, including the per-user systemd instance - are found in this slice.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><filename>machine.slice</filename></term> - <listitem> - <para>By default, all virtual machines and containers - registered with <command>systemd-machined</command> are - found in this slice. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect1> - - <refsect1> - <title>See Also</title> - <para> - <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, - <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, - <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>, - <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>, - <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>, - <citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>, - <citerefentry project='man-pages'><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>, - <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> - </para> - </refsect1> - -</refentry> |