chiark / gitweb /
sysv-generator: Skip init scripts for existing native services
[elogind.git] / man / systemd.special.xml
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">
4
5 <!--
6   This file is part of systemd.
7
8   Copyright 2010 Lennart Poettering
9
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.
14
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.
19
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/>.
22 -->
23
24 <refentry id="systemd.special">
25
26   <refentryinfo>
27     <title>systemd.special</title>
28     <productname>systemd</productname>
29
30     <authorgroup>
31       <author>
32         <contrib>Developer</contrib>
33         <firstname>Lennart</firstname>
34         <surname>Poettering</surname>
35         <email>lennart@poettering.net</email>
36       </author>
37     </authorgroup>
38   </refentryinfo>
39
40   <refmeta>
41     <refentrytitle>systemd.special</refentrytitle>
42     <manvolnum>7</manvolnum>
43   </refmeta>
44
45   <refnamediv>
46     <refname>systemd.special</refname>
47     <refpurpose>Special systemd units</refpurpose>
48   </refnamediv>
49
50   <refsynopsisdiv>
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>cryptsetup-pre.target</filename>,
56     <filename>dbus.service</filename>,
57     <filename>dbus.socket</filename>,
58     <filename>default.target</filename>,
59     <filename>display-manager.service</filename>,
60     <filename>emergency.target</filename>,
61     <filename>exit.target</filename>,
62     <filename>final.target</filename>,
63     <filename>getty.target</filename>,
64     <filename>graphical.target</filename>,
65     <filename>halt.target</filename>,
66     <filename>hibernate.target</filename>,
67     <filename>hybrid-sleep.target</filename>,
68     <filename>initrd-fs.target</filename>,
69     <filename>kbrequest.target</filename>,
70     <filename>kexec.target</filename>,
71     <filename>local-fs.target</filename>,
72     <filename>local-fs-pre.target</filename>,
73     <filename>multi-user.target</filename>,
74     <filename>network.target</filename>,
75     <filename>network-online.target</filename>,
76     <filename>network-pre.target</filename>,
77     <filename>nss-lookup.target</filename>,
78     <filename>nss-user-lookup.target</filename>,
79     <filename>paths.target</filename>,
80     <filename>poweroff.target</filename>,
81     <filename>printer.target</filename>,
82     <filename>reboot.target</filename>,
83     <filename>remote-fs.target</filename>,
84     <filename>remote-fs-pre.target</filename>,
85     <filename>rescue.target</filename>,
86     <filename>initrd-root-fs.target</filename>,
87     <filename>rpcbind.target</filename>,
88     <filename>runlevel2.target</filename>,
89     <filename>runlevel3.target</filename>,
90     <filename>runlevel4.target</filename>,
91     <filename>runlevel5.target</filename>,
92     <filename>shutdown.target</filename>,
93     <filename>sigpwr.target</filename>,
94     <filename>sleep.target</filename>,
95     <filename>smartcard.target</filename>,
96     <filename>sockets.target</filename>,
97     <filename>sound.target</filename>,
98     <filename>suspend.target</filename>,
99     <filename>swap.target</filename>,
100     <filename>sysinit.target</filename>,
101     <filename>syslog.socket</filename>,
102     <filename>system-update.target</filename>,
103     <filename>time-sync.target</filename>,
104     <filename>timers.target</filename>,
105     <filename>umount.target</filename>,
106     <filename>-.slice</filename>,
107     <filename>system.slice</filename>,
108     <filename>user.slice</filename>,
109     <filename>machine.slice</filename></para>
110   </refsynopsisdiv>
111
112   <refsect1>
113     <title>Description</title>
114
115     <para>A few units are treated specially by systemd. They have
116     special internal semantics and cannot be renamed.</para>
117   </refsect1>
118
119   <refsect1>
120     <title>Special System Units</title>
121
122     <variablelist>
123       <varlistentry>
124         <term><filename>basic.target</filename></term>
125         <listitem>
126           <para>A special target unit covering basic boot-up.</para>
127
128           <para>systemd automatically adds dependencies of the types
129           <varname>Requires=</varname> and <varname>After=</varname>
130           for this target unit to all services (except for those with
131           <varname>DefaultDependencies=no</varname>).</para>
132
133           <para>Usually this should pull-in all mount points, swap
134           devices, sockets, timers, and path units and other basic
135           initialization necessary for general purpose daemons.</para>
136         </listitem>
137       </varlistentry>
138       <varlistentry>
139         <term><filename>ctrl-alt-del.target</filename></term>
140         <listitem>
141           <para>systemd starts this target whenever Control+Alt+Del is
142           pressed on the console. Usually this should be aliased
143           (symlinked) to <filename>reboot.target</filename>.</para>
144         </listitem>
145       </varlistentry>
146       <varlistentry>
147         <term><filename>cryptsetup.target</filename></term>
148         <listitem>
149           <para>A target that pulls in setup services for all
150           encrypted block devices.</para>
151         </listitem>
152       </varlistentry>
153       <varlistentry>
154         <term><filename>dbus.service</filename></term>
155         <listitem>
156           <para>A special unit for the D-Bus bus daemon. As soon as
157           this service is fully started up systemd will connect to it
158           and register its service.</para>
159         </listitem>
160       </varlistentry>
161       <varlistentry>
162         <term><filename>dbus.socket</filename></term>
163         <listitem>
164           <para>A special unit for the D-Bus system bus socket. All
165           units with <varname>Type=dbus</varname> automatically gain a
166           dependency on this unit.</para>
167         </listitem>
168       </varlistentry>
169       <varlistentry>
170         <term><filename>default.target</filename></term>
171         <listitem>
172           <para>The default unit systemd starts at bootup. Usually
173           this should be aliased (symlinked) to
174           <filename>multi-user.target</filename> or
175           <filename>graphical.target</filename>.</para>
176
177           <para>The default unit systemd starts at bootup can be
178           overridden with the <varname>systemd.unit=</varname> kernel
179           command line option.</para>
180         </listitem>
181       </varlistentry>
182       <varlistentry>
183         <term><filename>display-manager.service</filename></term>
184         <listitem>
185           <para>The display manager service. Usually this should be
186           aliased (symlinked) to <filename>gdm.service</filename> or a
187           similar display manager service.</para>
188         </listitem>
189       </varlistentry>
190       <varlistentry>
191         <term><filename>emergency.target</filename></term>
192         <listitem>
193           <para>A special target unit that starts an emergency shell
194           on the main console. This unit is supposed to be used with
195           the kernel command line option
196           <varname>systemd.unit=</varname> and has otherwise little
197           use.
198           </para>
199         </listitem>
200       </varlistentry>
201       <varlistentry>
202         <term><filename>final.target</filename></term>
203         <listitem>
204           <para>A special target unit that is used during the shutdown
205           logic and may be used to pull in late services after all
206           normal services are already terminated and all mounts
207           unmounted.
208           </para>
209         </listitem>
210       </varlistentry>
211       <varlistentry>
212         <term><filename>getty.target</filename></term>
213         <listitem>
214           <para>A special target unit that pulls in statically
215           configured local TTY <filename>getty</filename> instances.
216           </para>
217         </listitem>
218       </varlistentry>
219       <varlistentry>
220         <term><filename>graphical.target</filename></term>
221         <listitem>
222           <para>A special target unit for setting up a graphical login
223           screen. This pulls in
224           <filename>multi-user.target</filename>.</para>
225
226           <para>Units that are needed for graphical logins shall add
227           <varname>Wants=</varname> dependencies for their unit to
228           this unit (or <filename>multi-user.target</filename>) during
229           installation. This is best configured via
230           <varname>WantedBy=graphical.target</varname> in the unit's
231           <literal>[Install]</literal> section.</para>
232         </listitem>
233       </varlistentry>
234       <varlistentry>
235         <term><filename>hibernate.target</filename></term>
236         <listitem>
237           <para>A special target unit for hibernating the system. This
238           pulls in <filename>sleep.target</filename>.</para>
239         </listitem>
240       </varlistentry>
241       <varlistentry>
242         <term><filename>hybrid-sleep.target</filename></term>
243         <listitem>
244           <para>A special target unit for hibernating and suspending
245           the system at the same time. This pulls in
246           <filename>sleep.target</filename>.</para>
247         </listitem>
248       </varlistentry>
249       <varlistentry>
250         <term><filename>halt.target</filename></term>
251         <listitem>
252           <para>A special target unit for shutting down and halting
253           the system. Note that this target is distinct from
254           <filename>poweroff.target</filename> in that it generally
255           really just halts the system rather than powering it
256           down.</para>
257
258           <para>Applications wanting to halt the system should start
259           this unit.</para>
260         </listitem>
261       </varlistentry>
262       <varlistentry>
263         <term><filename>initrd-fs.target</filename></term>
264         <listitem>
265           <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
266           automatically adds dependencies of type
267           <varname>Before=</varname> to
268           <filename>sysroot-usr.mount</filename> and all mount points
269           found in <filename>/etc/fstab</filename> that have
270           <option>x-initrd.mount</option> and not have
271           <option>noauto</option> mount options set.</para>
272         </listitem>
273       </varlistentry>
274       <varlistentry>
275         <term><filename>kbrequest.target</filename></term>
276         <listitem>
277           <para>systemd starts this target whenever Alt+ArrowUp is
278           pressed on the console. This is a good candidate to be
279           aliased (symlinked) to
280           <filename>rescue.target</filename>.</para>
281         </listitem>
282       </varlistentry>
283       <varlistentry>
284         <term><filename>kexec.target</filename></term>
285         <listitem>
286           <para>A special target unit for shutting down and rebooting
287           the system via kexec.</para>
288
289           <para>Applications wanting to reboot the system with kexec
290           should start this unit.</para>
291         </listitem>
292       </varlistentry>
293       <varlistentry>
294         <term><filename>local-fs.target</filename></term>
295         <listitem>
296           <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
297           automatically adds dependencies of type
298           <varname>Before=</varname> to all mount units that refer to
299           local mount points for this target unit. In addition, it
300           adds dependencies of type <varname>Wants=</varname> to this
301           target unit for those mounts listed in
302           <filename>/etc/fstab</filename> that have the
303           <option>auto</option> mount option set.</para>
304         </listitem>
305       </varlistentry>
306       <varlistentry>
307         <term><filename>multi-user.target</filename></term>
308         <listitem>
309           <para>A special target unit for setting up a multi-user
310           system (non-graphical). This is pulled in by
311           <filename>graphical.target</filename>.</para>
312
313           <para>Units that are needed for a multi-user system shall
314           add <varname>Wants=</varname> dependencies for their unit to
315           this unit during installation. This is best configured via
316           <varname>WantedBy=multi-user.target</varname> in the unit's
317           <literal>[Install]</literal> section.</para>
318         </listitem>
319       </varlistentry>
320       <varlistentry>
321         <term><filename>network-online.target</filename></term>
322         <listitem>
323           <para>Units that strictly require a configured network
324           connection should pull in
325           <filename>network-online.target</filename> (via a
326           <varname>Wants=</varname> type dependency) and order
327           themselves after it. This target unit is intended to pull in
328           a service that delays further execution until the network is
329           sufficiently set up. What precisely this requires is left to
330           the implementation of the network managing service.</para>
331
332           <para>Note the distinction between this unit and
333           <filename>network.target</filename>. This unit is an active
334           unit (i.e. pulled in by the consumer rather than the
335           provider of this functionality) and pulls in a service which
336           possibly adds substantial delays to further execution. In
337           contrast, <filename>network.target</filename> is a passive
338           unit (i.e. pulled in by the provider of the functionality,
339           rather than the consumer) that usually does not delay
340           execution much. Usually, <filename>network.target</filename>
341           is part of the boot of most systems, while
342           <filename>network-online.target</filename> is not, except
343           when at least one unit requires it. Also see <ulink
344           url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
345           Services After the Network is up</ulink> for more
346           information.</para>
347
348           <para>All mount units for remote network file systems
349           automatically pull in this unit, and order themselves after
350           it. Note that networking daemons that simply provide
351           functionality to other hosts generally do not need to pull
352           this in.</para>
353           </listitem>
354       </varlistentry>
355       <varlistentry>
356         <term><filename>paths.target</filename></term>
357         <listitem>
358           <para>A special target unit that sets up all path units (see
359           <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>
360           for details) that shall be active after boot.</para>
361
362           <para>It is recommended that path units installed by
363           applications get pulled in via <varname>Wants=</varname>
364           dependencies from this unit. This is best configured via a
365           <varname>WantedBy=paths.target</varname> in the path unit's
366           <literal>[Install]</literal> section.</para>
367         </listitem>
368       </varlistentry>
369       <varlistentry>
370         <term><filename>poweroff.target</filename></term>
371         <listitem>
372           <para>A special target unit for shutting down and powering
373           off the system.</para>
374
375           <para>Applications wanting to power off the system should
376           start this unit.</para>
377
378           <para><filename>runlevel0.target</filename> is an alias for
379           this target unit, for compatibility with SysV.</para>
380         </listitem>
381       </varlistentry>
382       <varlistentry>
383         <term><filename>reboot.target</filename></term>
384         <listitem>
385           <para>A special target unit for shutting down and rebooting
386           the system.</para>
387
388           <para>Applications wanting to reboot the system should start
389           this unit.</para>
390
391           <para><filename>runlevel6.target</filename> is an alias for
392           this target unit, for compatibility with SysV.</para>
393         </listitem>
394       </varlistentry>
395       <varlistentry>
396         <term><filename>remote-fs.target</filename></term>
397         <listitem>
398           <para>Similar to <filename>local-fs.target</filename>, but
399           for remote mount points.</para>
400
401           <para>systemd automatically adds dependencies of type
402           <varname>After=</varname> for this target unit to all SysV
403           init script service units with an LSB header referring to
404           the <literal>$remote_fs</literal> facility.</para>
405         </listitem>
406       </varlistentry>
407       <varlistentry>
408         <term><filename>rescue.target</filename></term>
409         <listitem>
410           <para>A special target unit for setting up the base system
411           and a rescue shell.</para>
412
413           <para><filename>runlevel1.target</filename> is an alias for
414           this target unit, for compatibility with SysV.</para>
415         </listitem>
416       </varlistentry>
417       <varlistentry>
418         <term><filename>initrd-root-fs.target</filename></term>
419         <listitem>
420           <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
421           automatically adds dependencies of type
422           <varname>Before=</varname> to the
423           <filename>sysroot.mount</filename> unit, which is generated
424           from the kernel command line.
425           </para>
426         </listitem>
427       </varlistentry>
428       <varlistentry>
429         <term><filename>runlevel2.target</filename></term>
430         <term><filename>runlevel3.target</filename></term>
431         <term><filename>runlevel4.target</filename></term>
432         <term><filename>runlevel5.target</filename></term>
433         <listitem>
434           <para>These are targets that are called whenever the SysV
435           compatibility code asks for runlevel 2, 3, 4, 5,
436           respectively. It is a good idea to make this an alias for
437           (i.e. symlink to) <filename>multi-user.target</filename>
438           (for runlevel 2) or <filename>graphical.target</filename>
439           (the others).</para>
440         </listitem>
441       </varlistentry>
442       <varlistentry>
443         <term><filename>shutdown.target</filename></term>
444         <listitem>
445           <para>A special target unit that terminates the services on
446           system shutdown.</para>
447
448           <para>Services that shall be terminated on system shutdown
449           shall add <varname>Conflicts=</varname> dependencies to this
450           unit for their service unit, which is implicitly done when
451           <varname>DefaultDependencies=yes</varname> is set (the
452           default).</para>
453         </listitem>
454       </varlistentry>
455       <varlistentry>
456         <term><filename>sigpwr.target</filename></term>
457         <listitem>
458           <para>A special target that is started when systemd receives
459           the SIGPWR process signal, which is normally sent by the
460           kernel or UPS daemons when power fails.</para>
461         </listitem>
462       </varlistentry>
463       <varlistentry>
464         <term><filename>sleep.target</filename></term>
465         <listitem>
466           <para>A special target unit that is pulled in by
467           <filename>suspend.target</filename>,
468           <filename>hibernate.target</filename> and
469           <filename>hybrid-sleep.target</filename> and may be used to
470           hook units into the sleep state logic.</para>
471         </listitem>
472       </varlistentry>
473       <varlistentry>
474         <term><filename>sockets.target</filename></term>
475         <listitem>
476           <para>A special target unit that sets up all socket
477           units.(see
478           <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
479           for details) that shall be active after boot.</para>
480
481           <para>Services that can be socket-activated shall add
482           <varname>Wants=</varname> dependencies to this unit for
483           their socket unit during installation. This is best
484           configured via a <varname>WantedBy=sockets.target</varname>
485           in the socket unit's <literal>[Install]</literal>
486           section.</para>
487         </listitem>
488       </varlistentry>
489       <varlistentry>
490         <term><filename>suspend.target</filename></term>
491         <listitem>
492           <para>A special target unit for suspending the system. This
493           pulls in <filename>sleep.target</filename>.</para>
494         </listitem>
495       </varlistentry>
496       <varlistentry>
497         <term><filename>swap.target</filename></term>
498         <listitem>
499           <para>Similar to <filename>local-fs.target</filename>, but
500           for swap partitions and swap files.</para>
501         </listitem>
502       </varlistentry>
503       <varlistentry>
504         <term><filename>sysinit.target</filename></term>
505         <listitem>
506           <para>A special target unit covering early boot-up
507           scripts.</para>
508         </listitem>
509       </varlistentry>
510       <varlistentry>
511         <term><filename>syslog.socket</filename></term>
512         <listitem>
513           <para>The socket unit syslog implementations should listen
514           on. All userspace log messages will be made available on
515           this socket. For more information about syslog integration,
516           please consult the <ulink
517           url="http://www.freedesktop.org/wiki/Software/systemd/syslog">Syslog
518           Interface</ulink> document.</para>
519         </listitem>
520       </varlistentry>
521       <varlistentry>
522         <term><filename>system-update.target</filename></term>
523         <listitem>
524           <para>A special target unit that is used for off-line system
525           updates.
526           <citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
527           will redirect the boot process to this target if
528           <filename>/system-update</filename> exists. For more
529           information see the <ulink
530           url="http://freedesktop.org/wiki/Software/systemd/SystemUpdates">System
531           Updates Specification</ulink>.</para>
532         </listitem>
533       </varlistentry>
534       <varlistentry>
535         <term><filename>timers.target</filename></term>
536         <listitem>
537           <para>A special target unit that sets up all timer units
538           (see
539           <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
540           for details) that shall be active after boot.</para>
541
542           <para>It is recommended that timer units installed by
543           applications get pulled in via <varname>Wants=</varname>
544           dependencies from this unit. This is best configured via
545           <varname>WantedBy=timers.target</varname> in the timer
546           unit's <literal>[Install]</literal> section.</para>
547         </listitem>
548       </varlistentry>
549       <varlistentry>
550         <term><filename>umount.target</filename></term>
551         <listitem>
552           <para>A special target unit that umounts all mount and
553           automount points on system shutdown.</para>
554
555           <para>Mounts that shall be unmounted on system shutdown
556           shall add Conflicts dependencies to this unit for their
557           mount unit, which is implicitly done when
558           <varname>DefaultDependencies=yes</varname> is set (the
559           default).</para>
560         </listitem>
561       </varlistentry>
562
563     </variablelist>
564   </refsect1>
565
566   <refsect1>
567     <title>Special System Units for Devices</title>
568
569     <para>Some target units are automatically pulled in as devices of
570     certain kinds show up in the system. These may be used to
571     automatically activate various services based on the specific type
572     of the available hardware.</para>
573
574     <variablelist>
575       <varlistentry>
576         <term><filename>bluetooth.target</filename></term>
577         <listitem>
578           <para>This target is started automatically as soon as a
579           Bluetooth controller is plugged in or becomes available at
580           boot.</para>
581
582           <para>This may be used to pull in Bluetooth management
583           daemons dynamically when Bluetooth hardware is found.</para>
584         </listitem>
585       </varlistentry>
586       <varlistentry>
587         <term><filename>printer.target</filename></term>
588         <listitem>
589           <para>This target is started automatically as soon as a
590           printer is plugged in or becomes available at boot.</para>
591
592           <para>This may be used to pull in printer management daemons
593           dynamically when printer hardware is found.</para>
594         </listitem>
595       </varlistentry>
596       <varlistentry>
597         <term><filename>smartcard.target</filename></term>
598         <listitem>
599           <para>This target is started automatically as soon as a
600           smartcard controller is plugged in or becomes available at
601           boot.</para>
602
603           <para>This may be used to pull in smartcard management
604           daemons dynamically when smartcard hardware is found.</para>
605         </listitem>
606       </varlistentry>
607       <varlistentry>
608         <term><filename>sound.target</filename></term>
609         <listitem>
610           <para>This target is started automatically as soon as a
611           sound card is plugged in or becomes available at
612           boot.</para>
613
614           <para>This may be used to pull in audio management daemons
615           dynamically when audio hardware is found.</para>
616         </listitem>
617       </varlistentry>
618     </variablelist>
619   </refsect1>
620
621   <refsect1>
622     <title>Special Passive System Units </title>
623
624     <para>A number of special system targets are defined that can be
625     used to properly order boot-up of optional services. These targets
626     are generally not part of the initial boot transaction, unless
627     they are explicitly pulled in by one of the implementing services.
628     Note specifically that these <emphasis>passive</emphasis> target
629     units are generally not pulled in by the consumer of a service,
630     but by the provider of the service. This means: a consuming
631     service should order itself after these targets (as appropriate),
632     but not pull it in. A providing service should order itself before
633     these targets (as appropriate) and pull it in (via a
634     <varname>Wants=</varname> type dependency).</para>
635
636     <para>Note that these passive units cannot be started manually,
637     i.e. <literal>systemctl start time-sync.target</literal> will fail
638     with an error. They can only be pulled in by dependency. This is
639     enforced since they exist for ordering purposes only and thus are
640     not useful as only unit within a transaction.</para>
641
642     <variablelist>
643       <varlistentry>
644         <term><filename>cryptsetup-pre.target</filename></term>
645         <listitem>
646           <para>This passive target unit may be pulled in by services
647           that want to run before any encrypted block device is set
648           up. All encrypted block devices are set up after this target
649           has been reached. Since the shutdown order is implicitly the
650           reverse start-up order between units, this target is
651           particularly useful to ensure that a service is shut down
652           only after all encrypted block devices are fully
653           stopped.</para>
654         </listitem>
655       </varlistentry>
656       <varlistentry>
657         <term><filename>local-fs-pre.target</filename></term>
658         <listitem>
659           <para>This target unit is
660           automatically ordered before
661           all local mount points marked
662           with <option>auto</option>
663           (see above). It can be used to
664           execute certain units before
665           all local mounts.</para>
666         </listitem>
667       </varlistentry>
668       <varlistentry>
669         <term><filename>network.target</filename></term>
670         <listitem>
671           <para>This unit is supposed to indicate when network
672           functionality is available, but it is only very weakly
673           defined what that is supposed to mean, with one exception:
674           at shutdown, a unit that is ordered after
675           <filename>network.target</filename> will be stopped before
676           the network -- to whatever level it might be set up then --
677           is shut down. It is hence useful when writing service files
678           that require network access on shutdown, which should order
679           themselves after this target, but not pull it in. Also see
680           <ulink url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
681           Services After the Network is up</ulink> for more
682           information. Also see
683           <filename>network-online.target</filename> described
684           above.</para>
685
686           <para>systemd automatically adds dependencies of type
687           <varname>After=</varname> for this target unit to all SysV
688           init script service units with an LSB header referring to
689           the <literal>$network</literal> facility.</para>
690         </listitem>
691       </varlistentry>
692       <varlistentry>
693         <term><filename>network-pre.target</filename></term>
694         <listitem>
695           <para>This passive target unit may be pulled in by services
696           that want to run before any network is set up, for example
697           for the purpose of setting up a firewall. All network
698           management software orders itself after this target, but
699           does not pull it in.</para>
700         </listitem>
701       </varlistentry>
702       <varlistentry>
703         <term><filename>nss-lookup.target</filename></term>
704         <listitem>
705           <para>A target that should be used as synchronization point
706           for all host/network name service lookups. Note that this is
707           independent of user/group name lookups for which
708           <filename>nss-user-lookup.target</filename> should be used.
709           All services for which the availability of full host/network
710           name resolution is essential should be ordered after this
711           target, but not pull it in. systemd automatically adds
712           dependencies of type <varname>After=</varname> for this
713           target unit to all SysV init script service units with an
714           LSB header referring to the <literal>$named</literal>
715           facility.</para>
716         </listitem>
717       </varlistentry>
718       <varlistentry>
719         <term><filename>nss-user-lookup.target</filename></term>
720         <listitem>
721           <para>A target that should be used as synchronization point
722           for all user/group name service lookups. Note that this is
723           independent of host/network name lookups for which
724           <filename>nss-lookup.target</filename> should be used. All
725           services for which the availability of the full user/group
726           database is essential should be ordered after this target,
727           but not pull it in. Note that system users are always
728           resolvable, and hence do not require any special ordering
729           against this target.</para>
730         </listitem>
731       </varlistentry>
732       <varlistentry>
733         <term><filename>remote-fs-pre.target</filename></term>
734         <listitem>
735           <para>This target unit is automatically ordered before all
736           remote mount point units (see above). It can be used to run
737           certain units before the remote mounts are established. Note
738           that this unit is generally not part of the initial
739           transaction, unless the unit that wants to be ordered before
740           all remote mounts pulls it in via a
741           <varname>Wants=</varname> type dependency. If the unit wants
742           to be pulled in by the first remote mount showing up, it
743           should use <filename>network-online.target</filename> (see
744           above).</para>
745         </listitem>
746       </varlistentry>
747       <varlistentry>
748         <term><filename>rpcbind.target</filename></term>
749         <listitem>
750           <para>The portmapper/rpcbind pulls in this target and orders
751           itself before it, to indicate its availability. systemd
752           automatically adds dependencies of type
753           <varname>After=</varname> for this target unit to all SysV
754           init script service units with an LSB header referring to
755           the <literal>$portmap</literal> facility.</para>
756         </listitem>
757       </varlistentry>
758       <varlistentry>
759         <term><filename>time-sync.target</filename></term>
760         <listitem>
761           <para>Services responsible for synchronizing the system
762           clock from a remote source (such as NTP client
763           implementations) should pull in this target and order
764           themselves before it. All services where correct time is
765           essential should be ordered after this unit, but not pull it
766           in. systemd automatically adds dependencies of type
767           <varname>After=</varname> for this target unit to all SysV
768           init script service units with an LSB header referring to
769           the <literal>$time</literal> facility. </para>
770         </listitem>
771       </varlistentry>
772     </variablelist>
773   </refsect1>
774
775   <refsect1>
776     <title>Special User Units</title>
777
778     <para>When systemd runs as a user instance, the following special
779     units are available, which have similar definitions as their
780     system counterparts:
781     <filename>default.target</filename>,
782     <filename>shutdown.target</filename>,
783     <filename>sockets.target</filename>,
784     <filename>timers.target</filename>,
785     <filename>paths.target</filename>,
786     <filename>bluetooth.target</filename>,
787     <filename>printer.target</filename>,
788     <filename>smartcard.target</filename>,
789     <filename>sound.target</filename>.</para>
790
791     <para>In addition, the following special unit is understood only
792     when systemd runs as service instance:</para>
793
794     <variablelist>
795       <varlistentry>
796         <term><filename>exit.target</filename></term>
797         <listitem>
798           <para>A special service unit for shutting down the user
799           service manager.</para>
800
801           <para>Applications wanting to terminate the user service
802           manager should start this unit. If systemd receives
803           <constant>SIGTERM</constant> or <constant>SIGINT</constant>
804           when running as user service daemon, it will start this
805           unit.</para>
806
807           <para>Normally, this pulls in
808           <filename>shutdown.target</filename> which in turn should be
809           conflicted by all units that want to be shut down on user
810           service manager exit.</para>
811         </listitem>
812       </varlistentry>
813     </variablelist>
814   </refsect1>
815
816   <refsect1>
817     <title>Special Slice Units</title>
818
819     <para>There are four <literal>.slice</literal> units which form
820     the basis of the hierarchy for assignment of resources for
821     services, users, and virtual machines or containers.</para>
822
823     <variablelist>
824       <varlistentry>
825         <term><filename>-.slice</filename></term>
826         <listitem>
827           <para>The root slice is the root of the hierarchy. It
828           usually does not contain units directly, but may be used to
829           set defaults for the whole tree.</para>
830         </listitem>
831       </varlistentry>
832
833       <varlistentry>
834         <term><filename>system.slice</filename></term>
835         <listitem>
836           <para>By default, all services services started by
837           <command>systemd</command> are found in this slice.</para>
838         </listitem>
839       </varlistentry>
840
841       <varlistentry>
842         <term><filename>user.slice</filename></term>
843         <listitem>
844           <para>By default, all user processes and services started on
845           behalf of the user, including the per-user systemd instance
846           are found in this slice.</para>
847         </listitem>
848       </varlistentry>
849
850       <varlistentry>
851         <term><filename>machine.slice</filename></term>
852         <listitem>
853           <para>By default, all virtual machines and containers
854           registered with <command>systemd-machined</command> are
855           found in this slice.
856           </para>
857         </listitem>
858       </varlistentry>
859     </variablelist>
860   </refsect1>
861
862   <refsect1>
863       <title>See Also</title>
864       <para>
865         <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
866         <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
867         <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
868         <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
869         <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
870         <citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
871         <citerefentry project='man-pages'><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
872         <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
873       </para>
874   </refsect1>
875
876 </refentry>