chiark / gitweb /
update TODO
[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
116                 systemd. They have special internal semantics and
117                 cannot be renamed.</para>
118         </refsect1>
119
120         <refsect1>
121                 <title>Special System Units</title>
122
123                 <variablelist>
124                         <varlistentry>
125                                 <term><filename>basic.target</filename></term>
126                                 <listitem>
127                                         <para>A special target unit
128                                         covering basic boot-up.</para>
129                                         <para>systemd automatically
130                                         adds dependencies of the types
131                                         <varname>Requires=</varname>
132                                         and <varname>After=</varname>
133                                         for this target unit to all
134                                         services (except for those
135                                         with
136                                         <varname>DefaultDependencies=no</varname>).</para>
137
138                                         <para>Usually this should
139                                         pull-in all mount points, swap
140                                         devices, sockets, timers, and
141                                         path units and other basic
142                                         initialization necessary for
143                                         general purpose
144                                         daemons.</para>
145                                 </listitem>
146                         </varlistentry>
147                         <varlistentry>
148                                 <term><filename>ctrl-alt-del.target</filename></term>
149                                 <listitem>
150                                         <para>systemd starts this
151                                         target whenever
152                                         Control+Alt+Del is pressed on
153                                         the console. Usually this
154                                         should be aliased (symlinked)
155                                         to
156                                         <filename>reboot.target</filename>.</para>
157                                 </listitem>
158                         </varlistentry>
159                         <varlistentry>
160                                 <term><filename>cryptsetup.target</filename></term>
161                                 <listitem>
162                                         <para>A target that pulls in
163                                         setup services for all
164                                         encrypted block
165                                         devices.</para>
166                                 </listitem>
167                         </varlistentry>
168                         <varlistentry>
169                                 <term><filename>dbus.service</filename></term>
170                                 <listitem>
171                                         <para>A special unit for the
172                                         D-Bus bus daemon. As soon as
173                                         this service is fully started
174                                         up systemd will connect to it
175                                         and register its
176                                         service.</para>
177                                 </listitem>
178                         </varlistentry>
179                         <varlistentry>
180                                 <term><filename>dbus.socket</filename></term>
181                                 <listitem>
182                                         <para>A special unit for the
183                                         D-Bus system bus socket. All
184                                         units with
185                                         <varname>Type=dbus</varname>
186                                         automatically gain a
187                                         dependency on this
188                                         unit.</para>
189                                 </listitem>
190                         </varlistentry>
191                         <varlistentry>
192                                 <term><filename>default.target</filename></term>
193                                 <listitem>
194                                         <para>The default unit systemd
195                                         starts at bootup. Usually this
196                                         should be aliased (symlinked)
197                                         to
198                                         <filename>multi-user.target</filename>
199                                         or
200                                         <filename>graphical.target</filename>.</para>
201
202                                         <para>The default unit systemd
203                                         starts at bootup can be
204                                         overridden with the
205                                         <varname>systemd.unit=</varname>
206                                         kernel command line option.</para>
207                                 </listitem>
208                         </varlistentry>
209                         <varlistentry>
210                                 <term><filename>display-manager.service</filename></term>
211                                 <listitem>
212                                         <para>The display manager
213                                         service. Usually this should
214                                         be aliased (symlinked) to
215                                         <filename>gdm.service</filename>
216                                         or a similar display manager
217                                         service.</para>
218                                 </listitem>
219                         </varlistentry>
220                         <varlistentry>
221                                 <term><filename>emergency.target</filename></term>
222                                 <listitem>
223                                         <para>A special target unit
224                                         that starts an emergency
225                                         shell on the main
226                                         console. This unit is supposed
227                                         to be used with the kernel
228                                         command line option
229                                         <varname>systemd.unit=</varname>
230                                         and has otherwise little use.
231                                         </para>
232                                 </listitem>
233                         </varlistentry>
234                         <varlistentry>
235                                 <term><filename>final.target</filename></term>
236                                 <listitem>
237                                         <para>A special target unit
238                                         that is used during the
239                                         shutdown logic and may be used
240                                         to pull in late services after
241                                         all normal services are
242                                         already terminated and all
243                                         mounts unmounted.
244                                         </para>
245                                 </listitem>
246                         </varlistentry>
247                         <varlistentry>
248                                 <term><filename>getty.target</filename></term>
249                                 <listitem>
250                                         <para>A special target unit
251                                         that pulls in statically
252                                         configured local TTY
253                                         <filename>getty</filename>
254                                         instances.
255                                         </para>
256                                 </listitem>
257                         </varlistentry>
258                         <varlistentry>
259                                 <term><filename>graphical.target</filename></term>
260                                 <listitem>
261                                         <para>A special target unit
262                                         for setting up a graphical
263                                         login screen. This pulls in
264                                         <filename>multi-user.target</filename>.</para>
265
266                                         <para>Units that are needed
267                                         for graphical logins shall add
268                                         <varname>Wants=</varname>
269                                         dependencies for their unit to
270                                         this unit (or
271                                         <filename>multi-user.target</filename>)
272                                         during installation. This is
273                                         best configured via
274                                         <varname>WantedBy=graphical.target</varname>
275                                         in the unit's
276                                         <literal>[Install]</literal>
277                                         section.</para>
278                                 </listitem>
279                         </varlistentry>
280                         <varlistentry>
281                                 <term><filename>hibernate.target</filename></term>
282                                 <listitem>
283                                         <para>A special target unit
284                                         for hibernating the
285                                         system. This pulls in
286                                         <filename>sleep.target</filename>.</para>
287                                 </listitem>
288                         </varlistentry>
289                         <varlistentry>
290                                 <term><filename>hybrid-sleep.target</filename></term>
291                                 <listitem>
292                                         <para>A special target unit
293                                         for hibernating and suspending the
294                                         system at the same time. This pulls in
295                                         <filename>sleep.target</filename>.</para>
296                                 </listitem>
297                         </varlistentry>
298                         <varlistentry>
299                                 <term><filename>halt.target</filename></term>
300                                 <listitem>
301                                         <para>A special target unit
302                                         for shutting down and halting
303                                         the system. Note that this
304                                         target is distinct from
305                                         <filename>poweroff.target</filename>
306                                         in that it generally really
307                                         just halts the system rather
308                                         than powering it down.</para>
309
310                                         <para>Applications wanting to
311                                         halt the system should start
312                                         this unit.</para>
313                                 </listitem>
314                         </varlistentry>
315                         <varlistentry>
316                                 <term><filename>initrd-fs.target</filename></term>
317                                 <listitem>
318                                         <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
319                                         automatically adds
320                                         dependencies of type
321                                         <varname>Before=</varname> to
322                                         <filename>sysroot-usr.mount</filename>
323                                         and all mount points found in
324                                         <filename>/etc/fstab</filename>
325                                         that have
326                                         <option>x-initrd.mount</option>
327                                         and not have <option>noauto</option>
328                                         mount options set.</para>
329                                 </listitem>
330                         </varlistentry>
331                         <varlistentry>
332                                 <term><filename>kbrequest.target</filename></term>
333                                 <listitem>
334                                         <para>systemd starts this
335                                         target whenever Alt+ArrowUp is
336                                         pressed on the console. This
337                                         is a good candidate to be
338                                         aliased (symlinked) to
339                                         <filename>rescue.target</filename>.</para>
340                                 </listitem>
341                         </varlistentry>
342                         <varlistentry>
343                                 <term><filename>kexec.target</filename></term>
344                                 <listitem>
345                                         <para>A special target unit
346                                         for shutting down and rebooting the system via kexec.</para>
347
348                                         <para>Applications wanting to
349                                         reboot the system with kexec should start
350                                         this unit.</para>
351                                 </listitem>
352                         </varlistentry>
353                         <varlistentry>
354                                 <term><filename>local-fs.target</filename></term>
355                                 <listitem>
356                                         <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
357                                         automatically adds
358                                         dependencies of type
359                                         <varname>Before=</varname> to
360                                         all mount units that refer to
361                                         local mount points for this
362                                         target unit. In addition, it
363                                         adds dependencies of type
364                                         <varname>Wants=</varname> to
365                                         this target unit for those
366                                         mounts listed in
367                                         <filename>/etc/fstab</filename>
368                                         that have the
369                                         <option>auto</option> mount
370                                         option set.</para>
371                                 </listitem>
372                         </varlistentry>
373                         <varlistentry>
374                                 <term><filename>multi-user.target</filename></term>
375                                 <listitem>
376                                         <para>A special target unit
377                                         for setting up a multi-user
378                                         system (non-graphical). This
379                                         is pulled in by
380                                         <filename>graphical.target</filename>.</para>
381
382                                         <para>Units that are needed
383                                         for a multi-user system shall
384                                         add <varname>Wants=</varname>
385                                         dependencies for their unit to
386                                         this unit during
387                                         installation. This is best
388                                         configured via
389                                         <varname>WantedBy=multi-user.target</varname>
390                                         in the unit's
391                                         <literal>[Install]</literal>
392                                         section.</para>
393                                 </listitem>
394                         </varlistentry>
395                         <varlistentry>
396                                 <term><filename>network-online.target</filename></term>
397                                 <listitem>
398                                         <para>Units that strictly
399                                         require a configured network
400                                         connection should pull in
401                                         <filename>network-online.target</filename>
402                                         (via a
403                                         <varname>Wants=</varname> type
404                                         dependency) and order
405                                         themselves after it. This
406                                         target unit is intended to
407                                         pull in a service that delays
408                                         further execution until the
409                                         network is sufficiently set
410                                         up. What precisely this
411                                         requires is left to the
412                                         implementation of the network
413                                         managing service.</para>
414
415                                         <para>Note the distinction
416                                         between this unit and
417                                         <filename>network.target</filename>. This
418                                         unit is an active unit
419                                         (i.e. pulled in by the
420                                         consumer rather than the
421                                         provider of this
422                                         functionality) and pulls in a
423                                         service which possibly adds
424                                         substantial delays to further
425                                         execution. In contrast,
426                                         <filename>network.target</filename>
427                                         is a passive unit (i.e. pulled
428                                         in by the provider of the
429                                         functionality, rather than the
430                                         consumer) that usually does
431                                         not delay execution
432                                         much. Usually,
433                                         <filename>network.target</filename>
434                                         is part of the boot of most
435                                         systems, while
436                                         <filename>network-online.target</filename>
437                                         is not, except when at least
438                                         one unit requires it. Also see
439                                         <ulink
440                                         url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
441                                         Services After the Network is
442                                         up</ulink> for more
443                                         information.</para>
444
445                                         <para>All mount units for
446                                         remote network file systems
447                                         automatically pull in this
448                                         unit, and order themselves
449                                         after it. Note that networking
450                                         daemons that simply provide
451                                         functionality to other hosts
452                                         generally do not need to pull
453                                         this in.</para>
454                                         </listitem>
455                         </varlistentry>
456                         <varlistentry>
457                                 <term><filename>paths.target</filename></term>
458                                 <listitem>
459                                         <para>A special target unit
460                                         that sets up all path units
461                                         (see
462                                         <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>
463                                         for details) that shall be
464                                         active after boot.</para>
465
466                                         <para>It is recommended that
467                                         path units installed by
468                                         applications get pulled in via
469                                         <varname>Wants=</varname>
470                                         dependencies from this
471                                         unit. This is best configured
472                                         via a
473                                         <varname>WantedBy=paths.target</varname>
474                                         in the path unit's
475                                         <literal>[Install]</literal>
476                                         section.</para>
477                                 </listitem>
478                         </varlistentry>
479                         <varlistentry>
480                                 <term><filename>poweroff.target</filename></term>
481                                 <listitem>
482                                         <para>A special target unit
483                                         for shutting down and powering off the system.</para>
484
485                                         <para>Applications wanting to
486                                         power off the system should start
487                                         this unit.</para>
488
489                                         <para><filename>runlevel0.target</filename>
490                                         is an alias for this target
491                                         unit, for compatibility with SysV.</para>
492                                 </listitem>
493                         </varlistentry>
494                         <varlistentry>
495                                 <term><filename>reboot.target</filename></term>
496                                 <listitem>
497                                         <para>A special target unit
498                                         for shutting down and rebooting the system.</para>
499
500                                         <para>Applications wanting to
501                                         reboot the system should start
502                                         this unit.</para>
503
504                                         <para><filename>runlevel6.target</filename>
505                                         is an alias for this target
506                                         unit, for compatibility with SysV.</para>
507                                 </listitem>
508                         </varlistentry>
509                         <varlistentry>
510                                 <term><filename>remote-fs.target</filename></term>
511                                 <listitem>
512                                         <para>Similar to
513                                         <filename>local-fs.target</filename>,
514                                         but for remote mount
515                                         points.</para>
516
517                                         <para>systemd automatically
518                                         adds dependencies of type
519                                         <varname>After=</varname> for
520                                         this target unit to all SysV
521                                         init script service units with
522                                         an LSB header referring to the
523                                         <literal>$remote_fs</literal>
524                                         facility.</para>
525                                 </listitem>
526                         </varlistentry>
527                         <varlistentry>
528                                 <term><filename>rescue.target</filename></term>
529                                 <listitem>
530                                         <para>A special target unit
531                                         for setting up the base system
532                                         and a rescue shell.</para>
533
534                                         <para><filename>runlevel1.target</filename>
535                                         is an alias for this target
536                                         unit, for compatibility with SysV.</para>
537                                 </listitem>
538                         </varlistentry>
539                         <varlistentry>
540                                 <term><filename>initrd-root-fs.target</filename></term>
541                                 <listitem>
542                                         <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
543                                         automatically adds
544                                         dependencies of type
545                                         <varname>Before=</varname> to
546                                         the
547                                         <filename>sysroot.mount</filename>
548                                         unit, which is generated from
549                                         the kernel command line.
550                                         </para>
551                                 </listitem>
552                         </varlistentry>
553                         <varlistentry>
554                                 <term><filename>runlevel2.target</filename></term>
555                                 <term><filename>runlevel3.target</filename></term>
556                                 <term><filename>runlevel4.target</filename></term>
557                                 <term><filename>runlevel5.target</filename></term>
558                                 <listitem>
559                                         <para>These are targets that
560                                         are called whenever the SysV
561                                         compatibility code asks for
562                                         runlevel 2, 3, 4, 5,
563                                         respectively. It is a good
564                                         idea to make this an alias for
565                                         (i.e. symlink to)
566                                         <filename>multi-user.target</filename>
567                                         (for runlevel 2) or
568                                         <filename>graphical.target</filename>
569                                         (the others).</para>
570                                 </listitem>
571                         </varlistentry>
572                         <varlistentry>
573                                 <term><filename>shutdown.target</filename></term>
574                                 <listitem>
575                                         <para>A special target unit
576                                         that terminates the services
577                                         on system shutdown.</para>
578
579                                         <para>Services that shall be
580                                         terminated on system shutdown
581                                         shall add <varname>Conflicts=</varname>
582                                         dependencies to this unit for
583                                         their service unit, which is
584                                         implicitly done when
585                                         <varname>DefaultDependencies=yes</varname>
586                                         is set (the default).</para>
587                                 </listitem>
588                         </varlistentry>
589                         <varlistentry>
590                                 <term><filename>sigpwr.target</filename></term>
591                                 <listitem>
592                                         <para>A special target that is
593                                         started when systemd receives
594                                         the SIGPWR process signal,
595                                         which is normally sent by the
596                                         kernel or UPS daemons when
597                                         power fails.</para>
598                                 </listitem>
599                         </varlistentry>
600                         <varlistentry>
601                                 <term><filename>sleep.target</filename></term>
602                                 <listitem>
603                                         <para>A special target unit
604                                         that is pulled in by
605                                         <filename>suspend.target</filename>,
606                                         <filename>hibernate.target</filename>
607                                         and
608                                         <filename>hybrid-sleep.target</filename>
609                                         and may be used to hook units
610                                         into the sleep state
611                                         logic.</para>
612                                 </listitem>
613                         </varlistentry>
614                         <varlistentry>
615                                 <term><filename>sockets.target</filename></term>
616                                 <listitem>
617                                         <para>A special target unit
618                                         that sets up all socket
619                                         units.(see
620                                         <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
621                                         for details) that shall be
622                                         active after boot.</para>
623
624                                         <para>Services that can be
625                                         socket-activated shall add
626                                         <varname>Wants=</varname>
627                                         dependencies to this unit for
628                                         their socket unit during
629                                         installation. This is best
630                                         configured via a
631                                         <varname>WantedBy=sockets.target</varname>
632                                         in the socket unit's
633                                         <literal>[Install]</literal>
634                                         section.</para>
635                                 </listitem>
636                         </varlistentry>
637                         <varlistentry>
638                                 <term><filename>suspend.target</filename></term>
639                                 <listitem>
640                                         <para>A special target unit
641                                         for suspending the
642                                         system. This pulls in
643                                         <filename>sleep.target</filename>.</para>
644                                 </listitem>
645                         </varlistentry>
646                         <varlistentry>
647                                 <term><filename>swap.target</filename></term>
648                                 <listitem>
649                                         <para>Similar to
650                                         <filename>local-fs.target</filename>, but for swap
651                                         partitions and swap
652                                         files.</para>
653                                 </listitem>
654                         </varlistentry>
655                         <varlistentry>
656                                 <term><filename>sysinit.target</filename></term>
657                                 <listitem>
658                                         <para>A special target unit
659                                         covering early boot-up scripts.</para>
660                                 </listitem>
661                         </varlistentry>
662                         <varlistentry>
663                                 <term><filename>syslog.socket</filename></term>
664                                 <listitem>
665                                         <para>The socket unit
666                                         syslog implementations should
667                                         listen on. All userspace log
668                                         messages will be made
669                                         available on this socket. For
670                                         more information about syslog
671                                         integration, please consult
672                                         the <ulink
673                                         url="http://www.freedesktop.org/wiki/Software/systemd/syslog">Syslog
674                                         Interface</ulink>
675                                         document.</para>
676                                 </listitem>
677                         </varlistentry>
678                         <varlistentry>
679                                 <term><filename>system-update.target</filename></term>
680                                 <listitem>
681                                         <para>A special target unit
682                                         that is used for off-line
683                                         system updates.
684                                         <citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
685                                         will redirect the boot process
686                                         to this target if
687                                         <filename>/system-update</filename>
688                                         exists. For more information
689                                         see the <ulink
690                                         url="http://freedesktop.org/wiki/Software/systemd/SystemUpdates">System
691                                         Updates
692                                         Specification</ulink>.</para>
693                                 </listitem>
694                         </varlistentry>
695                         <varlistentry>
696                                 <term><filename>timers.target</filename></term>
697                                 <listitem>
698                                         <para>A special target unit
699                                         that sets up all timer
700                                         units (see
701                                         <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
702                                         for details) that shall be
703                                         active after boot.</para>
704
705                                         <para>It is recommended that
706                                         timer units installed by
707                                         applications get pulled in via
708                                         <varname>Wants=</varname>
709                                         dependencies from this
710                                         unit. This is best configured
711                                         via
712                                         <varname>WantedBy=timers.target</varname>
713                                         in the timer unit's
714                                         <literal>[Install]</literal>
715                                         section.</para>
716                                 </listitem>
717                         </varlistentry>
718                         <varlistentry>
719                                 <term><filename>umount.target</filename></term>
720                                 <listitem>
721                                         <para>A special target unit
722                                         that umounts all mount and
723                                         automount points on system
724                                         shutdown.</para>
725
726                                         <para>Mounts that shall be
727                                         unmounted on system shutdown
728                                         shall add Conflicts
729                                         dependencies to this unit for
730                                         their mount unit, which is
731                                         implicitly done when
732                                         <varname>DefaultDependencies=yes</varname>
733                                         is set (the default).</para>
734                                 </listitem>
735                         </varlistentry>
736
737                 </variablelist>
738         </refsect1>
739
740         <refsect1>
741                 <title>Special System Units for Devices</title>
742
743                 <para>Some target units are automatically pulled in as
744                 devices of certain kinds show up in the system. These
745                 may be used to automatically activate various services
746                 based on the specific type of the available
747                 hardware.</para>
748
749                 <variablelist>
750                         <varlistentry>
751                                 <term><filename>bluetooth.target</filename></term>
752                                 <listitem>
753                                         <para>This target is started
754                                         automatically as soon as a
755                                         Bluetooth controller is
756                                         plugged in or becomes
757                                         available at boot.</para>
758
759                                         <para>This may be used to pull
760                                         in Bluetooth management
761                                         daemons dynamically when
762                                         Bluetooth hardware is
763                                         found.</para>
764                                 </listitem>
765                         </varlistentry>
766                         <varlistentry>
767                                 <term><filename>printer.target</filename></term>
768                                 <listitem>
769                                         <para>This target is started
770                                         automatically as soon as a
771                                         printer is plugged in or
772                                         becomes available at
773                                         boot.</para>
774
775                                         <para>This may be used to pull
776                                         in printer management
777                                         daemons dynamically when
778                                         printer hardware is
779                                         found.</para>
780                                 </listitem>
781                         </varlistentry>
782                         <varlistentry>
783                                 <term><filename>smartcard.target</filename></term>
784                                 <listitem>
785                                         <para>This target is started
786                                         automatically as soon as a
787                                         smartcard controller is
788                                         plugged in or becomes
789                                         available at boot.</para>
790
791                                         <para>This may be used to pull
792                                         in smartcard management
793                                         daemons dynamically when
794                                         smartcard hardware is
795                                         found.</para>
796                                 </listitem>
797                         </varlistentry>
798                         <varlistentry>
799                                 <term><filename>sound.target</filename></term>
800                                 <listitem>
801                                         <para>This target is started
802                                         automatically as soon as a
803                                         sound card is plugged in or
804                                         becomes available at
805                                         boot.</para>
806
807                                         <para>This may be used to pull
808                                         in audio management daemons
809                                         dynamically when audio
810                                         hardware is found.</para>
811                                 </listitem>
812                         </varlistentry>
813                 </variablelist>
814         </refsect1>
815
816         <refsect1>
817                 <title>Special Passive System Units </title>
818
819                 <para>A number of special system targets are defined
820                 that can be used to properly order boot-up of optional
821                 services. These targets are generally not part of the
822                 initial boot transaction, unless they are explicitly
823                 pulled in by one of the implementing services. Note
824                 specifically that these <emphasis>passive</emphasis>
825                 target units are generally not pulled in by the
826                 consumer of a service, but by the provider of the
827                 service. This means: a consuming service should order
828                 itself after these targets (as appropriate), but not
829                 pull it in. A providing service should order itself
830                 before these targets (as appropriate) and pull it in
831                 (via a <varname>Wants=</varname> type
832                 dependency).</para>
833
834                 <para>Note that these passive units cannot be started
835                 manually, i.e. <literal>systemctl start
836                 time-sync.target</literal> will fail with an
837                 error. They can only be pulled in by dependency. This
838                 is enforced since they exist for ordering purposes
839                 only and thus are not useful as only unit within a
840                 transaction.</para>
841
842                 <variablelist>
843                         <varlistentry>
844                                 <term><filename>cryptsetup-pre.target</filename></term>
845                                 <listitem>
846                                         <para>This passive target unit
847                                         may be pulled in by services
848                                         that want to run before any
849                                         encrypted block device is set
850                                         up. All encrypted block
851                                         devices are set up after this
852                                         target has been reached. Since
853                                         the shutdown order is
854                                         implicitly the reverse
855                                         start-up order between units,
856                                         this target is particularly
857                                         useful to ensure that a
858                                         service is shut down only
859                                         after all encrypted block
860                                         devices are fully
861                                         stopped.</para>
862                                 </listitem>
863                         </varlistentry>
864                         <varlistentry>
865                                 <term><filename>local-fs-pre.target</filename></term>
866                                 <listitem>
867                                         <para>This target unit is
868                                         automatically ordered before
869                                         all local mount points marked
870                                         with <option>auto</option>
871                                         (see above). It can be used to
872                                         execute certain units before
873                                         all local mounts.</para>
874                                 </listitem>
875                         </varlistentry>
876                         <varlistentry>
877                                 <term><filename>network.target</filename></term>
878                                 <listitem>
879                                         <para>This unit is supposed to
880                                         indicate when network
881                                         functionality is available,
882                                         but it is only very weakly
883                                         defined what that is supposed
884                                         to mean, with one exception:
885                                         at shutdown, a unit that is
886                                         ordered after
887                                         <filename>network.target</filename>
888                                         will be stopped before the
889                                         network -- to whatever level
890                                         it might be set up then -- is
891                                         shut down. It is hence useful
892                                         when writing service files
893                                         that require network access on
894                                         shutdown, which should order
895                                         themselves after this target,
896                                         but not pull it in. Also see
897                                         <ulink
898                                         url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
899                                         Services After the Network is
900                                         up</ulink> for more
901                                         information. Also see
902                                         <filename>network-online.target</filename>
903                                         described above.</para>
904
905                                         <para>systemd automatically
906                                         adds dependencies of type
907                                         <varname>After=</varname> for
908                                         this target unit to all SysV
909                                         init script service units with
910                                         an LSB header referring to the
911                                         <literal>$network</literal>
912                                         facility.</para>
913                                 </listitem>
914                         </varlistentry>
915                         <varlistentry>
916                                 <term><filename>network-pre.target</filename></term>
917                                 <listitem>
918                                         <para>This passive target unit
919                                         may be pulled in by services
920                                         that want to run before any
921                                         network is set up, for example
922                                         for the purpose of setting up a
923                                         firewall. All network
924                                         management software orders
925                                         itself after this target, but
926                                         does not pull it in.</para>
927                                 </listitem>
928                         </varlistentry>
929                         <varlistentry>
930                                 <term><filename>nss-lookup.target</filename></term>
931                                 <listitem>
932                                         <para>A target that should be
933                                         used as synchronization point
934                                         for all host/network name
935                                         service lookups. Note that
936                                         this is independent of
937                                         user/group name lookups for
938                                         which
939                                         <filename>nss-user-lookup.target</filename>
940                                         should be used. All services
941                                         for which the availability of
942                                         full host/network name
943                                         resolution is essential should
944                                         be ordered after this target,
945                                         but not pull it in. systemd
946                                         automatically adds
947                                         dependencies of type
948                                         <varname>After=</varname> for
949                                         this target unit to all SysV
950                                         init script service units with
951                                         an LSB header referring to the
952                                         <literal>$named</literal>
953                                         facility.</para>
954                                 </listitem>
955                         </varlistentry>
956                         <varlistentry>
957                                 <term><filename>nss-user-lookup.target</filename></term>
958                                 <listitem>
959                                         <para>A target that should be
960                                         used as synchronization point
961                                         for all user/group name
962                                         service lookups. Note that
963                                         this is independent of
964                                         host/network name lookups for
965                                         which
966                                         <filename>nss-lookup.target</filename>
967                                         should be used. All services
968                                         for which the availability of
969                                         the full user/group database is
970                                         essential should be ordered
971                                         after this target, but not
972                                         pull it in. Note that system
973                                         users are always resolvable,
974                                         and hence do not require any
975                                         special ordering against this
976                                         target.</para>
977                                 </listitem>
978                         </varlistentry>
979                         <varlistentry>
980                                 <term><filename>remote-fs-pre.target</filename></term>
981                                 <listitem>
982                                         <para>This target unit is
983                                         automatically ordered before
984                                         all remote mount point units
985                                         (see above). It can be used to
986                                         run certain units before the
987                                         remote mounts are
988                                         established. Note that this
989                                         unit is generally not part of
990                                         the initial transaction,
991                                         unless the unit that wants to
992                                         be ordered before all remote
993                                         mounts pulls it in via a
994                                         <varname>Wants=</varname> type
995                                         dependency. If the unit wants
996                                         to be pulled in by the first
997                                         remote mount showing up, it
998                                         should use
999                                         <filename>network-online.target</filename>
1000                                         (see above).</para>
1001                                 </listitem>
1002                         </varlistentry>
1003                         <varlistentry>
1004                                 <term><filename>rpcbind.target</filename></term>
1005                                 <listitem>
1006                                         <para>The portmapper/rpcbind
1007                                         pulls in this target and
1008                                         orders itself before it, to
1009                                         indicate its
1010                                         availability. systemd
1011                                         automatically adds
1012                                         dependencies of type
1013                                         <varname>After=</varname> for
1014                                         this target unit to all SysV
1015                                         init script service units with
1016                                         an LSB header referring to the
1017                                         <literal>$portmap</literal>
1018                                         facility.</para>
1019                                 </listitem>
1020                         </varlistentry>
1021                         <varlistentry>
1022                                 <term><filename>time-sync.target</filename></term>
1023                                 <listitem>
1024                                         <para>Services responsible for
1025                                         synchronizing the system clock
1026                                         from a remote source (such as
1027                                         NTP client implementations)
1028                                         should pull in this target and
1029                                         order themselves before
1030                                         it. All services where correct
1031                                         time is essential should be
1032                                         ordered after this unit, but
1033                                         not pull it in. systemd
1034                                         automatically adds
1035                                         dependencies of type
1036                                         <varname>After=</varname> for
1037                                         this target unit to all SysV
1038                                         init script service units with
1039                                         an LSB header referring to the
1040                                         <literal>$time</literal>
1041                                         facility. </para>
1042                                 </listitem>
1043                         </varlistentry>
1044                 </variablelist>
1045         </refsect1>
1046
1047         <refsect1>
1048                 <title>Special User Units</title>
1049
1050                 <para>When systemd runs as a user instance, the
1051                 following special units are available, which have
1052                 similar definitions as their system counterparts:
1053                 <filename>default.target</filename>,
1054                 <filename>shutdown.target</filename>,
1055                 <filename>sockets.target</filename>,
1056                 <filename>timers.target</filename>,
1057                 <filename>paths.target</filename>,
1058                 <filename>bluetooth.target</filename>,
1059                 <filename>printer.target</filename>,
1060                 <filename>smartcard.target</filename>,
1061                 <filename>sound.target</filename>.</para>
1062
1063                 <para>In addition, the following special unit is
1064                 understood only when systemd runs as service instance:</para>
1065
1066                 <variablelist>
1067                         <varlistentry>
1068                                 <term><filename>exit.target</filename></term>
1069                                 <listitem>
1070                                         <para>A special service unit
1071                                         for shutting down the
1072                                         user service manager.</para>
1073
1074                                         <para>Applications wanting to
1075                                         terminate the user service
1076                                         manager should start this
1077                                         unit. If systemd receives
1078                                         <constant>SIGTERM</constant> or <constant>SIGINT</constant> when running
1079                                         as user service daemon, it will
1080                                         start this unit.</para>
1081
1082                                         <para>Normally, this pulls in
1083                                         <filename>shutdown.target</filename>
1084                                         which in turn should be
1085                                         conflicted by all units that
1086                                         want to be shut down on
1087                                         user service manager exit.</para>
1088                                 </listitem>
1089                         </varlistentry>
1090                 </variablelist>
1091         </refsect1>
1092
1093         <refsect1>
1094                 <title>Special Slice Units</title>
1095
1096                 <para>There are four <literal>.slice</literal> units
1097                 which form the basis of the hierarchy for assignment
1098                 of resources for services, users, and virtual machines
1099                 or containers.</para>
1100
1101                 <variablelist>
1102                         <varlistentry>
1103                                 <term><filename>-.slice</filename></term>
1104                                 <listitem>
1105                                         <para>The root slice is the
1106                                         root of the hierarchy. It
1107                                         usually does not contain units
1108                                         directly, but may be used to
1109                                         set defaults for the whole
1110                                         tree.</para>
1111                                 </listitem>
1112                         </varlistentry>
1113
1114                         <varlistentry>
1115                                 <term><filename>system.slice</filename></term>
1116                                 <listitem>
1117                                         <para>By default, all services
1118                                         services started by
1119                                         <command>systemd</command> are
1120                                         found in this slice.</para>
1121                                 </listitem>
1122                         </varlistentry>
1123
1124                         <varlistentry>
1125                                 <term><filename>user.slice</filename></term>
1126                                 <listitem>
1127                                         <para>By default, all user
1128                                         processes and services started
1129                                         on behalf of the user,
1130                                         including the per-user systemd
1131                                         instance are found in this
1132                                         slice.</para>
1133                                 </listitem>
1134                         </varlistentry>
1135
1136                         <varlistentry>
1137                                 <term><filename>machine.slice</filename></term>
1138                                 <listitem>
1139                                         <para>By default, all virtual
1140                                         machines and containers
1141                                         registered with
1142                                         <command>systemd-machined</command>
1143                                         are found in this slice.
1144                                         </para>
1145                                 </listitem>
1146                         </varlistentry>
1147                 </variablelist>
1148         </refsect1>
1149
1150         <refsect1>
1151                   <title>See Also</title>
1152                   <para>
1153                           <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1154                           <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1155                           <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1156                           <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1157                           <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1158                           <citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1159                           <citerefentry project='man-pages'><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1160                           <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
1161                   </para>
1162         </refsect1>
1163
1164 </refentry>