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