1 <?xml version='1.0'?> <!--*-nxml-*-->
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
6 This file is part of systemd.
8 Copyright 2010 Lennart Poettering
10 systemd is free software; you can redistribute it and/or modify it
11 under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 2.1 of the License, or
13 (at your option) any later version.
15 systemd is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
20 You should have received a copy of the GNU Lesser General Public License
21 along with systemd; If not, see <http://www.gnu.org/licenses/>.
24 <refentry id="systemd.special">
27 <title>systemd.special</title>
28 <productname>systemd</productname>
32 <contrib>Developer</contrib>
33 <firstname>Lennart</firstname>
34 <surname>Poettering</surname>
35 <email>lennart@poettering.net</email>
41 <refentrytitle>systemd.special</refentrytitle>
42 <manvolnum>7</manvolnum>
46 <refname>systemd.special</refname>
47 <refpurpose>Special systemd units</refpurpose>
51 <para><filename>basic.target</filename>,
52 <filename>bluetooth.target</filename>,
53 <filename>ctrl-alt-del.target</filename>,
54 <filename>cryptsetup.target</filename>,
55 <filename>dbus.service</filename>,
56 <filename>dbus.socket</filename>,
57 <filename>default.target</filename>,
58 <filename>display-manager.service</filename>,
59 <filename>emergency.target</filename>,
60 <filename>exit.target</filename>,
61 <filename>final.target</filename>,
62 <filename>getty.target</filename>,
63 <filename>graphical.target</filename>,
64 <filename>halt.target</filename>,
65 <filename>hibernate.target</filename>,
66 <filename>hybrid-sleep.target</filename>,
67 <filename>initrd-fs.target</filename>,
68 <filename>kbrequest.target</filename>,
69 <filename>kexec.target</filename>,
70 <filename>local-fs.target</filename>,
71 <filename>local-fs-pre.target</filename>,
72 <filename>multi-user.target</filename>,
73 <filename>network.target</filename>,
74 <filename>nss-lookup.target</filename>,
75 <filename>nss-user-lookup.target</filename>,
76 <filename>paths.target</filename>,
77 <filename>poweroff.target</filename>,
78 <filename>printer.target</filename>,
79 <filename>reboot.target</filename>,
80 <filename>remote-fs.target</filename>,
81 <filename>remote-fs-pre.target</filename>,
82 <filename>remote-fs-setup.target</filename>,
83 <filename>rescue.target</filename>,
84 <filename>initrd-root-fs.target</filename>,
85 <filename>rpcbind.target</filename>,
86 <filename>runlevel2.target</filename>,
87 <filename>runlevel3.target</filename>,
88 <filename>runlevel4.target</filename>,
89 <filename>runlevel5.target</filename>,
90 <filename>shutdown.target</filename>,
91 <filename>sigpwr.target</filename>,
92 <filename>sleep.target</filename>,
93 <filename>smartcard.target</filename>,
94 <filename>sockets.target</filename>,
95 <filename>sound.target</filename>,
96 <filename>suspend.target</filename>,
97 <filename>swap.target</filename>,
98 <filename>sysinit.target</filename>,
99 <filename>syslog.socket</filename>,
100 <filename>system-update.target</filename>,
101 <filename>time-sync.target</filename>,
102 <filename>timers.target</filename>,
103 <filename>umount.target</filename></para>
107 <title>Description</title>
109 <para>A few units are treated specially by
110 systemd. They have special internal semantics and
111 cannot be renamed.</para>
115 <title>Special System Units</title>
119 <term><filename>basic.target</filename></term>
121 <para>A special target unit
122 covering basic boot-up.</para>
123 <para>systemd automatically
124 adds dependencies of the types
125 <varname>Requires=</varname>
126 and <varname>After=</varname>
127 for this target unit to all
128 services (except for those
130 <varname>DefaultDependencies=no</varname>).</para>
132 <para>Usually this should
133 pull-in all mount points, swap
134 devices, sockets, timers, and
135 path units and other basic
136 initialization necessary for
142 <term><filename>ctrl-alt-del.target</filename></term>
144 <para>systemd starts this
146 Control+Alt+Del is pressed on
147 the console. Usually this
148 should be aliased (symlinked)
150 <filename>reboot.target</filename>.</para>
154 <term><filename>cryptsetup.target</filename></term>
156 <para>A target that pulls in
157 setup services for all
163 <term><filename>dbus.service</filename></term>
165 <para>A special unit for the
166 D-Bus bus daemon. As soon as
167 this service is fully started
168 up systemd will connect to it
174 <term><filename>dbus.socket</filename></term>
176 <para>A special unit for the
177 D-Bus system bus socket. All
179 <varname>Type=dbus</varname>
186 <term><filename>default.target</filename></term>
188 <para>The default unit systemd
189 starts at bootup. Usually this
190 should be aliased (symlinked)
192 <filename>multi-user.target</filename>
194 <filename>graphical.target</filename>.</para>
196 <para>The default unit systemd
197 starts at bootup can be
199 <varname>systemd.unit=</varname>
200 kernel command line option.</para>
204 <term><filename>display-manager.service</filename></term>
206 <para>The display manager
207 service. Usually this should
208 be aliased (symlinked) to
209 <filename>gdm.service</filename>
210 or a similar display manager
215 <term><filename>emergency.target</filename></term>
217 <para>A special target unit
218 that starts an emergency
220 console. This unit is supposed
221 to be used with the kernel
223 <varname>systemd.unit=</varname>
224 and has otherwise little use.
229 <term><filename>final.target</filename></term>
231 <para>A special target unit
232 that is used during the
233 shutdown logic and may be used
234 to pull in late services after
235 all normal services are
236 already terminated and all
242 <term><filename>getty.target</filename></term>
244 <para>A special target unit
245 that pulls in statically
247 <filename>getty</filename>
253 <term><filename>graphical.target</filename></term>
255 <para>A special target unit
256 for setting up a graphical
257 login screen. This pulls in
258 <filename>multi-user.target</filename>.</para>
260 <para>Units that are needed
261 for graphical logins shall add
262 <varname>Wants=</varname>
263 dependencies for their unit to
265 <filename>multi-user.target</filename>)
266 during installation. This is
268 <varname>WantedBy=graphical.target</varname>
270 <literal>[Install]</literal>
275 <term><filename>hibernate.target</filename></term>
277 <para>A special target unit
279 system. This pulls in
280 <filename>sleep.target</filename>.</para>
284 <term><filename>hybrid-sleep.target</filename></term>
286 <para>A special target unit
287 for hibernating and suspending the
288 system at the same time. This pulls in
289 <filename>sleep.target</filename>.</para>
293 <term><filename>halt.target</filename></term>
295 <para>A special target unit
296 for shutting down and halting
297 the system. Note that this
298 target is distinct from
299 <filename>poweroff.target</filename>
300 in that it generally really
301 just halts the system rather
302 than powering it down.</para>
304 <para>Applications wanting to
305 halt the system should start
310 <term><filename>initrd-fs.target</filename></term>
312 <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
315 <varname>Before=</varname> to
316 <filename>sysroot-usr.mount</filename>
317 and all mount points fround in
318 <filename>/etc/fstab</filename>
320 <option>auto</option> and
321 <option>x-initrd.mount</option>
327 <term><filename>kbrequest.target</filename></term>
329 <para>systemd starts this
330 target whenever Alt+ArrowUp is
331 pressed on the console. This
332 is a good candidate to be
333 aliased (symlinked) to
334 <filename>rescue.target</filename>.</para>
338 <term><filename>kexec.target</filename></term>
340 <para>A special target unit
341 for shutting down and rebooting the system via kexec.</para>
343 <para>Applications wanting to
344 reboot the system with kexec should start
349 <term><filename>local-fs.target</filename></term>
351 <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
354 <varname>Before=</varname> to
355 all mount units that refer to
356 local mount points for this
357 target unit. In addition, it
358 adds dependencies of type
359 <varname>Wants=</varname> to
360 this target unit for those
362 <filename>/etc/fstab</filename>
364 <option>auto</option> mount
369 <term><filename>multi-user.target</filename></term>
371 <para>A special target unit
372 for setting up a multi-user
373 system (non-graphical). This
375 <filename>graphical.target</filename>.</para>
377 <para>Units that are needed
378 for a multi-user system shall
379 add <varname>Wants=</varname>
380 dependencies for their unit to
382 installation. This is best
384 <varname>WantedBy=multi-uer.target</varname>
386 <literal>[Install]</literal>
391 <term><filename>paths.target</filename></term>
393 <para>A special target unit
394 that sets up all path units
396 <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>
397 for details) that shall be
398 active after boot.</para>
400 <para>It is recommended that
401 path units installed by
402 applications get pulled in via
403 <varname>Wants=</varname>
404 dependencies from this
405 unit. This is best configured
407 <varname>WantedBy=paths.target</varname>
409 <literal>[Install]</literal>
414 <term><filename>poweroff.target</filename></term>
416 <para>A special target unit
417 for shutting down and powering off the system.</para>
419 <para>Applications wanting to
420 power off the system should start
423 <para><filename>runlevel0.target</filename>
424 is an alias for this target
425 unit, for compatibility with SysV.</para>
429 <term><filename>reboot.target</filename></term>
431 <para>A special target unit
432 for shutting down and rebooting the system.</para>
434 <para>Applications wanting to
435 reboot the system should start
438 <para><filename>runlevel6.target</filename>
439 is an alias for this target
440 unit, for compatibility with SysV.</para>
444 <term><filename>remote-fs.target</filename></term>
447 <filename>local-fs.target</filename>,
451 <para>systemd automatically
452 adds dependencies of type
453 <varname>After=</varname> for
454 this target unit to all SysV
455 init script service units with
456 an LSB header referring to the
457 <literal>$remote_fs</literal>
462 <term><filename>remote-fs-setup.target</filename></term>
464 <para>This target unit is
465 automatically pulled in (by a
466 <varname>Wants=</varname> type
467 dependency) by all remote
468 mount points. It can be used
469 to run certain units when at
470 least one remote file system
471 is to be mounted. Note that
472 this target is not ordered
473 against the remote mounts, use
474 <filename>remote-fs-pre.target</filename>
475 for that (see below).</para>
477 <para>Again, this target unit
478 is <emphasis>not</emphasis>
479 suitable for ordering, it is
480 only useful for pulling in
485 <term><filename>rescue.target</filename></term>
487 <para>A special target unit
488 for setting up the base system
489 and a rescue shell.</para>
491 <para><filename>runlevel1.target</filename>
492 is an alias for this target
493 unit, for compatibility with SysV.</para>
497 <term><filename>initrd-root-fs.target</filename></term>
499 <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
502 <varname>Before=</varname> to
504 <filename>sysroot.mount</filename>
505 unit, which is generated from
506 the kernel command line.
511 <term><filename>runlevel2.target</filename></term>
512 <term><filename>runlevel3.target</filename></term>
513 <term><filename>runlevel4.target</filename></term>
514 <term><filename>runlevel5.target</filename></term>
516 <para>These are targets that
517 are called whenever the SysV
518 compatibility code asks for
520 respectively. It is a good
521 idea to make this an alias for
523 <filename>multi-user.target</filename>
525 <filename>graphical.target</filename>
530 <term><filename>shutdown.target</filename></term>
532 <para>A special target unit
533 that terminates the services
534 on system shutdown.</para>
536 <para>Services that shall be
537 terminated on system shutdown
538 shall add <varname>Conflicts=</varname>
539 dependencies to this unit for
540 their service unit, which is
542 <varname>DefaultDependencies=yes</varname>
543 is set (the default).</para>
547 <term><filename>sigpwr.target</filename></term>
549 <para>A special target that is
550 started when systemd receives
551 the SIGPWR process signal,
552 which is normally sent by the
553 kernel or UPS daemons when
558 <term><filename>sleep.target</filename></term>
560 <para>A special target unit
562 <filename>suspend.target</filename>,
563 <filename>hibernate.target</filename>
565 <filename>hybrid-sleep.target</filename>
566 and may be used to hook units
572 <term><filename>sockets.target</filename></term>
574 <para>A special target unit
575 that sets up all socket
577 <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
578 for details) that shall be
579 active after boot.</para>
581 <para>Services that can be
582 socket-activated shall add
583 <varname>Wants=</varname>
584 dependencies to this unit for
585 their socket unit during
586 installation. This is best
588 <varname>WantedBy=sockets.target</varname>
590 <literal>[Install]</literal>
595 <term><filename>suspend.target</filename></term>
597 <para>A special target unit
599 system. This pulls in
600 <filename>sleep.target</filename>.</para>
604 <term><filename>swap.target</filename></term>
607 <filename>local-fs.target</filename>, but for swap
613 <term><filename>sysinit.target</filename></term>
615 <para>A special target unit
616 covering early boot-up scripts.</para>
620 <term><filename>syslog.socket</filename></term>
622 <para>The socket unit
623 syslog implementations should
624 listen on. All userspace log
625 messages will be made
626 available on this socket. For
627 more information about syslog
628 integration, please consult
630 url="http://www.freedesktop.org/wiki/Software/systemd/syslog">Syslog
636 <term><filename>system-update.target</filename></term>
638 <para>A special target unit
639 that is used for off-line
641 <citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
642 will redirect the boot process
644 <filename>/system-update</filename>
645 exists. For more information
647 url="http://freedesktop.org/wiki/Software/systemd/SystemUpdates">System
649 Specification</ulink>.</para>
653 <term><filename>timers.target</filename></term>
655 <para>A special target unit
656 that sets up all timer
658 <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
659 for details) that shall be
660 active after boot.</para>
662 <para>It is recommended that
663 timer units installed by
664 applications get pulled in via
665 <varname>Wants=</varname>
666 dependencies from this
667 unit. This is best configured
669 <varname>WantedBy=timers.target</varname>
671 <literal>[Install]</literal>
676 <term><filename>umount.target</filename></term>
678 <para>A special target unit
679 that umounts all mount and
680 automount points on system
683 <para>Mounts that shall be
684 unmounted on system shutdown
686 dependencies to this unit for
687 their mount unit, which is
689 <varname>DefaultDependencies=yes</varname>
690 is set (the default).</para>
698 <title>Special System Units for Devices</title>
700 <para>Some target units are automatically pulled in as
701 devices of certain kinds show up in the system. These
702 may be used to automatically activate various services
703 based on the specific type of the available
708 <term><filename>bluetooth.target</filename></term>
710 <para>This target is started
711 automatically as soon as a
712 Bluetooth controller is
713 plugged in or becomes
714 available at boot.</para>
716 <para>This may be used to pull
717 in Bluetooth management
718 daemons dynamically when
719 Bluetooth hardware is
724 <term><filename>printer.target</filename></term>
726 <para>This target is started
727 automatically as soon as a
728 printer is plugged in or
732 <para>This may be used to pull
733 in printer management
734 daemons dynamically when
740 <term><filename>smartcard.target</filename></term>
742 <para>This target is started
743 automatically as soon as a
744 smartcard controller is
745 plugged in or becomes
746 available at boot.</para>
748 <para>This may be used to pull
749 in printer management
750 daemons dynamically when
751 smartcard hardware is
756 <term><filename>sound.target</filename></term>
758 <para>This target is started
759 automatically as soon as a
760 sound card is plugged in or
764 <para>This may be used to pull
765 in audio management daemons
766 dynamically when printer
767 hardware is found.</para>
774 <title>Special Passive System Units </title>
776 <para>A number of special system targets are defined
777 that can be used to properly order boot-up of optional
778 services. These targets are generally not part of the
779 initial boot transaction, unless they are explicitly
780 pulled in by one of the implementing services. Note
781 specifically, that these <emphasis>passive</emphasis>
782 target units are generally not pulled in by the
783 consumer of a service, but by the provider of the
784 service. This means: a consuming service should order
785 itself after these targets (as appropriate), but not
786 pull it in. A providing service should order itself
787 before these targets (as appropriate) and pull it in
788 (via a <varname>Wants=</varname> type
791 <para>Note that these passive units cannot be started
792 manually, i.e. <literal>systemctl start
793 time-sync.target</literal> will fail with an
794 error. They can only be pulled in by dependency. This
795 is enforced since they exist for ordering purposes
796 only and thus are not useful as only unit within a
801 <term><filename>local-fs-pre.target</filename></term>
803 <para>This target unit is
804 automatically ordered before
805 all local mount points marked
806 with <option>auto</option>
807 (see above). It can be used to
808 execute certain units before
809 all local mounts.</para>
813 <term><filename>network.target</filename></term>
815 <para>systemd automatically
816 adds dependencies of type
817 <varname>After=</varname> for
818 this target unit to all SysV
819 init script service units with
820 an LSB header referring to the
821 <literal>$network</literal>
824 <para>This unit is supposed to
825 indicate when the network is
826 "up", but it is only very
827 loosely defined what that is
828 supposed to mean. Also see <ulink
829 url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
830 Services After the Network is
836 <term><filename>nss-lookup.target</filename></term>
838 <para>A target that should be
839 used as synchronization point
840 for all host/network name
841 service lookups. Note that
842 this is independent of
843 user/group name lookups for
845 <filename>nss-user-lookup.target</filename>
846 should be used. systemd
849 <varname>After=</varname> for
850 this target unit to all SysV
851 init script service units with
852 an LSB header referring to the
853 <literal>$named</literal>
858 <term><filename>nss-user-lookup.target</filename></term>
860 <para>A target that should be
861 used as synchronization point
862 for all user/group name
863 service lookups. Note that
864 this is independent of
865 host/network name lookups for
867 <filename>nss-lookup.target</filename>
868 should be used. </para>
872 <term><filename>remote-fs-pre.target</filename></term>
874 <para>This target unit is
875 automatically ordered before
876 all remote mount point units
877 (see above). It can be used to
878 run certain units before the
880 established. Note that this
881 unit is generally not part of
882 the initial transaction,
883 unless the unit that wants to
884 be ordered before all remote
885 mounts pulls it in via a
886 <varname>Wants=</varname> type
887 dependency. If the unit wants
888 to be pulled in by the first
889 remote mount showing up it
891 <filename>remote-fs-setup.target</filename>
894 <para>Again, this target unit
895 is <emphasis>not</emphasis>
896 suitable for pulling in other
897 units, it is only useful for
902 <term><filename>rpcbind.target</filename></term>
904 <para>systemd automatically
905 adds dependencies of type
906 <varname>After=</varname> for
907 this target unit to all SysV
908 init script service units with
909 an LSB header referring to the
910 <literal>$portmap</literal>
915 <term><filename>time-sync.target</filename></term>
917 <para>systemd automatically
918 adds dependencies of type
919 <varname>After=</varname> for
920 this target unit to all SysV
921 init script service units with
922 an LSB header referring to the
923 <literal>$time</literal>
931 <title>Special User Units</title>
933 <para>When systemd runs as a user instance, the
934 following special units are available, which have
935 similar definitions as their system counterparts:
936 <filename>default.target</filename>,
937 <filename>shutdown.target</filename>,
938 <filename>sockets.target</filename>,
939 <filename>timers.target</filename>,
940 <filename>paths.target</filename>,
941 <filename>bluetooth.target</filename>,
942 <filename>printer.target</filename>,
943 <filename>smartcard.target</filename>,
944 <filename>sound.target</filename>.</para>
946 <para>In addition the following special unit is
947 understood only when systemd runs as service instance:</para>
951 <term><filename>exit.target</filename></term>
953 <para>A special service unit
954 for shutting down the
955 user service manager.</para>
957 <para>Applications wanting to
958 terminate the user service
959 manager should start this
960 unit. If systemd receives
961 SIGTERM or SIGINT when running
962 as user service daemon it will
963 start this unit.</para>
965 <para>Normally, this pulls in
966 <filename>shutdown.target</filename>
967 which in turn should be
968 conflicted by all units that
969 want to be shut down on
970 user service manager exit.</para>
977 <title>See Also</title>
979 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
980 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
981 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
982 <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
983 <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
984 <citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
985 <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>