| <?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 General Public License as published by |
| the Free Software Foundation; either version 2 of the License, or |
| (at your option) any later version. |
| |
| systemd is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| General Public License for more details. |
| |
| You should have received a copy of the GNU 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>ctrl-alt-del.target</filename>, |
| <filename>dbus.service</filename>, |
| <filename>dbus.target</filename>, |
| <filename>default.target</filename>, |
| <filename>display-manager.service</filename>, |
| <filename>emergency.target</filename>, |
| <filename>exit.service</filename>, |
| <filename>graphical.target</filename>, |
| <filename>halt.target</filename>, |
| <filename>kbrequest.target</filename>, |
| <filename>local-fs.target</filename>, |
| <filename>mail-transfer-agent.target</filename>, |
| <filename>multi-user.target</filename>, |
| <filename>network.target</filename>, |
| <filename>nss-lookup.target</filename>, |
| <filename>poweroff.target</filename>, |
| <filename>reboot.target</filename>, |
| <filename>remote-fs.target</filename>, |
| <filename>rescue.target</filename>, |
| <filename>rpcbind.target</filename>, |
| <filename>rtc-set.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>sockets.target</filename>, |
| <filename>swap.target</filename>, |
| <filename>sysinit.target</filename>, |
| <filename>@SPECIAL_SYSLOG_SERVICE@</filename>, |
| <filename>syslog.target</filename>, |
| <filename>systemd-initctl.service</filename>, |
| <filename>systemd-initctl.socket</filename>, |
| <filename>systemd-logger.service</filename>, |
| <filename>systemd-logger.socket</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 early boot-up.</para> |
| <para>systemd automatically |
| adds dependencies of the types |
| Requires and After for this |
| target unit to all SysV |
| service units configured for |
| runlevel 1 to 5.</para> |
| <para>Usually this should pull-in |
| all sockets, mount points, |
| swap devices and other basic |
| initialization necessary for |
| the general purpose |
| daemons. Most normal daemons |
| should have dependencies of |
| type After and Requires on |
| this unit.</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>dbus.service</filename></term> |
| <listitem> |
| <para>A special unit for the |
| D-Bus system bus. As soon as |
| this service is fully started |
| up systemd will connect to it |
| and register its |
| service.</para> |
| |
| <para>Units should generally |
| avoid depending on this unit |
| directly and instead refer to |
| the |
| <filename>dbus.target</filename> |
| unit instead, which pulls this |
| one in directly or indirectly |
| via socket-based activation.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>dbus.target</filename></term> |
| <listitem> |
| <para>Administrators should |
| ensure that this target pulls |
| in a service unit with the |
| name or alias of |
| <filename>dbus.service</filename> |
| (or a socket unit that |
| activates this |
| service).</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 |
| overriden with the |
| <varname>systemd.default=</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>xdm.service</filename> |
| or a similar display manager |
| service.</para> |
| <para>systemd automatically |
| adds dependencies of type |
| After for this target unit to |
| all SysV init script service |
| units with a LSB header |
| referring to the |
| <literal>$x-display-manager</literal> |
| facility, for compatibility |
| with Debian.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>emergency.target</filename></term> |
| <listitem> |
| <para>A special target unit |
| that starts an emergency |
| shell on the main |
| console. This unit is supposed |
| to be used with the kernel |
| command line option |
| <varname>systemd.default=</varname> |
| and has otherwise little use. |
| </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 login shall add |
| Wants dependencies for their |
| unit to this unit (or |
| <filename>multi-user.target</filename>) |
| during installation.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>halt.target</filename></term> |
| <listitem> |
| <para>A special target unit |
| for shutting down and halting the system.</para> |
| |
| <para>Applications wanting to |
| halt the system should start |
| this unit.</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>local-fs.target</filename></term> |
| <listitem> |
| <para>systemd automatically |
| adds dependencies of type |
| After to all mount units that |
| refer to local mount points |
| for this target unit. In |
| addition, systemd adds |
| dependencies of type Wants to |
| this target unit for those |
| mounts listed in |
| <filename>/etc/fstab</filename> |
| that have the |
| <option>auto</option> and |
| <option>comment=systemd.mount</option> |
| mount options set.</para> |
| |
| <para>systemd automatically |
| adds dependencies of type |
| After for this target unit to |
| all SysV init script service |
| units with an LSB header |
| referring to the |
| <literal>$local_fs</literal> |
| facility.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>mail-transfer-agent.target</filename></term> |
| <listitem> |
| <para>The mail transfer agent |
| (MTA) service. Usually this |
| should pull-in all units |
| necessary for |
| sending/receiving mails on the |
| local host.</para> |
| |
| <para>systemd automatically |
| adds dependencies of type |
| After for this target unit to |
| all SysV init script service |
| units with an LSB header |
| referring to the |
| <literal>$mail-transfer-argent</literal> |
| or |
| <literal>$mail-transport-agent</literal> |
| facilities, for compatibility |
| with Debian.</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 Wants dependencies to |
| this unit for their unit during |
| installation.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>network.target</filename></term> |
| <listitem> |
| <para>systemd automatically |
| adds dependencies of type |
| After for this target unit to |
| all SysV init script service |
| units with an LSB header |
| referring to the |
| <literal>$network</literal> |
| facility.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>nss-lookup.target</filename></term> |
| <listitem> |
| <para>systemd automatically |
| adds dependencies of type |
| After for this target unit to |
| all SysV init script service |
| units with an LSB header |
| referring to the |
| <literal>$named</literal> |
| facility.</para> |
| </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 |
| After 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>rpcbind.target</filename></term> |
| <listitem> |
| <para>systemd automatically |
| adds dependencies of type |
| After for this target unit to |
| all SysV init script service |
| units with an LSB header |
| referring to the |
| <literal>$rpcbind</literal> |
| facility.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>rtc-set.target</filename></term> |
| <listitem> |
| <para>systemd automatically |
| adds dependencies of type |
| After for this target unit to |
| all SysV init script service |
| units with an LSB header |
| referring to the |
| <literal>$time</literal> |
| facility.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>runlevel2.target</filename></term> |
| <listitem> |
| <para>This is a target that is |
| called whever the SysV |
| compatibility code asks for |
| runlevel 2. It is a good idea |
| to make this an alias for |
| (i.e. symlink to) |
| <filename>multi-user.target</filename>.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>runlevel3.target</filename></term> |
| <listitem> |
| <para>This is a target that is |
| called whever the SysV |
| compatibility code asks for |
| runlevel 3. It is a good idea |
| to make this an alias for |
| (i.e. symlink to) |
| <filename>multi-user.target</filename> |
| or |
| <filename>graphical.target</filename>.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>runlevel4.target</filename></term> |
| <listitem> |
| <para>This is a target that is |
| called whever the SysV |
| compatibility code asks for |
| runlevel 4. It is a good idea |
| to make this an alias for |
| (i.e. symlink to) |
| <filename>multi-user.target</filename> |
| or |
| <filename>graphical.target</filename>.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>runlevel5.target</filename></term> |
| <listitem> |
| <para>This is a target that is |
| called whever the SysV |
| compatibility code asks for |
| runlevel 5. It is a good idea |
| to make this an alias for |
| (i.e. symlink to) |
| <filename>multi-user.target</filename> |
| or |
| <filename>graphical.target</filename>.</para> |
| </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 Conflicts |
| dependencies to this unit for |
| their service unit, which is |
| implicitly done when |
| <varname>DefaultDependencies=yes</varname> |
| is set (the default).</para> |
| |
| <para>systemd automatically |
| adds dependencies of type |
| Conflicts to this target unit |
| for all SysV init script |
| service units that shall be |
| terminated in SysV runlevels 0 |
| or 6.</para> |
| </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>sockets.target</filename></term> |
| <listitem> |
| <para>A special target unit |
| that sets up all service |
| sockets.</para> |
| |
| <para>Services that can be |
| socket-activated shall add |
| Wants dependencies to this |
| unit for their socket unit |
| during installation.</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> |
| <para>systemd automatically |
| adds dependencies of the types |
| Wants and After for all |
| SysV service units configured |
| for runlevels that are not 0 |
| to 6 to this target unit. |
| This covers the special |
| boot-up runlevels some |
| distributions have, such as S |
| or b.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>@SPECIAL_SYSLOG_SERVICE@</filename></term> |
| <listitem> |
| <para>A special unit for the |
| syslog daemon. As soon as |
| this service is fully started |
| up systemd will connect to it |
| and use it for logging if it |
| has been configured for |
| that.</para> |
| |
| <para>Units should generally |
| avoid depending on this unit |
| directly and instead refer to |
| the |
| <filename>syslog.target</filename> |
| unit instead, which pulls this |
| one in directly or indirectly |
| via socket-based activation.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>syslog.target</filename></term> |
| <listitem> |
| <para>systemd automatically |
| adds dependencies of type |
| After for this target unit to |
| all SysV init script service |
| units with an LSB header |
| referring to the |
| <literal>$syslog</literal> |
| facility.</para> |
| |
| <para>Administrators should |
| ensure that this target pulls |
| in a service unit with the |
| name or alias of |
| <filename>@SPECIAL_SYSLOG_SERVICE@</filename> |
| (or a socket unit that |
| activates this |
| service).</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>systemd-initctl.service</filename></term> |
| <listitem> |
| <para>This provides |
| compatibility with the SysV |
| /dev/initctl file system FIFO |
| for communication with the |
| init system.</para> |
| <para>This is a |
| socket-activated service, see |
| <filename>system-initctl.socket</filename>.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>systemd-initctl.socket</filename></term> |
| <listitem> |
| <para>Socket activation unit |
| for |
| <filename>system-initctl.service</filename>.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>systemd-logger.service</filename></term> |
| <listitem> |
| <para>This is internally used |
| by systemd to provide syslog |
| logging to the processes it |
| maintains.</para> |
| <para>This is a |
| socket-activated service, see |
| <filename>system-logger.socket</filename>.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>systemd-logger.socket</filename></term> |
| <listitem> |
| <para>Socket activation unit |
| for |
| <filename>system-logger.service</filename>. systemd |
| will automatically add |
| dependencies of types Requires |
| and After to all units that |
| have been configured for |
| stdout or stderr to be |
| connected to syslog or the |
| kernel log buffer.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>systemd-shutdownd.service</filename></term> |
| <listitem> |
| <para>This is internally used |
| by |
| <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry> |
| to implement delayed shutdowns.</para> |
| <para>This is a |
| socket-activated service, see |
| <filename>system-shutdownd.socket</filename>.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><filename>systemd-shutdownd.socket</filename></term> |
| <listitem> |
| <para>Socket activation unit |
| for |
| <filename>system-shutdownd.service</filename>.</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>local-fs.target</filename>, |
| <filename>remote-fs.target</filename>, |
| <filename>shutdown.target</filename>, |
| <filename>sockets.target</filename>, |
| <filename>swap.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.service</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.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> |
| </para> |
| </refsect1> |
| |
| </refentry> |