chiark / gitweb /
b7340ed978a4e93800e47fca1bdd723eaa559c14
[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>nss-lookup.target</filename>,
75                 <filename>nss-user-lookup.target</filename>,
76                 <filename>paths.target</filename>,
77                 <filename>poweroff.target</filename>,
78                 <filename>printer.target</filename>,
79                 <filename>reboot.target</filename>,
80                 <filename>remote-fs.target</filename>,
81                 <filename>remote-fs-pre.target</filename>,
82                 <filename>remote-fs-setup.target</filename>,
83                 <filename>rescue.target</filename>,
84                 <filename>initrd-root-fs.target</filename>,
85                 <filename>rpcbind.target</filename>,
86                 <filename>runlevel2.target</filename>,
87                 <filename>runlevel3.target</filename>,
88                 <filename>runlevel4.target</filename>,
89                 <filename>runlevel5.target</filename>,
90                 <filename>shutdown.target</filename>,
91                 <filename>sigpwr.target</filename>,
92                 <filename>sleep.target</filename>,
93                 <filename>smartcard.target</filename>,
94                 <filename>sockets.target</filename>,
95                 <filename>sound.target</filename>,
96                 <filename>suspend.target</filename>,
97                 <filename>swap.target</filename>,
98                 <filename>sysinit.target</filename>,
99                 <filename>syslog.socket</filename>,
100                 <filename>system-update.target</filename>,
101                 <filename>time-sync.target</filename>,
102                 <filename>timers.target</filename>,
103                 <filename>umount.target</filename></para>
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.target</filename></term>
392                                 <listitem>
393                                         <para>systemd automatically
394                                         adds dependencies of type
395                                         <varname>After=</varname> for
396                                         this target unit to all SysV
397                                         init script service units with
398                                         an LSB header referring to the
399                                         <literal>$network</literal>
400                                         facility.</para>
401
402                                         <para>This unit is supposed to
403                                         indicate when the network is
404                                         "up", but it is only very
405                                         loosely defined what that is
406                                         supposed to mean. Also see <ulink
407                                         url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
408                                         Services After the Network is
409                                         up</ulink> for more
410                                         information.</para>
411                                 </listitem>
412                         </varlistentry>
413                         <varlistentry>
414                                 <term><filename>paths.target</filename></term>
415                                 <listitem>
416                                         <para>A special target unit
417                                         that sets up all path units
418                                         (see
419                                         <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>
420                                         for details) that shall be
421                                         active after boot.</para>
422
423                                         <para>It is recommended that
424                                         path units installed by
425                                         applications get pulled in via
426                                         <varname>Wants=</varname>
427                                         dependencies from this
428                                         unit. This is best configured
429                                         via a
430                                         <varname>WantedBy=paths.target</varname>
431                                         in the path unit's
432                                         <literal>[Install]</literal>
433                                         section.</para>
434                                 </listitem>
435                         </varlistentry>
436                         <varlistentry>
437                                 <term><filename>poweroff.target</filename></term>
438                                 <listitem>
439                                         <para>A special target unit
440                                         for shutting down and powering off the system.</para>
441
442                                         <para>Applications wanting to
443                                         power off the system should start
444                                         this unit.</para>
445
446                                         <para><filename>runlevel0.target</filename>
447                                         is an alias for this target
448                                         unit, for compatibility with SysV.</para>
449                                 </listitem>
450                         </varlistentry>
451                         <varlistentry>
452                                 <term><filename>reboot.target</filename></term>
453                                 <listitem>
454                                         <para>A special target unit
455                                         for shutting down and rebooting the system.</para>
456
457                                         <para>Applications wanting to
458                                         reboot the system should start
459                                         this unit.</para>
460
461                                         <para><filename>runlevel6.target</filename>
462                                         is an alias for this target
463                                         unit, for compatibility with SysV.</para>
464                                 </listitem>
465                         </varlistentry>
466                         <varlistentry>
467                                 <term><filename>remote-fs.target</filename></term>
468                                 <listitem>
469                                         <para>Similar to
470                                         <filename>local-fs.target</filename>,
471                                         but for remote mount
472                                         points.</para>
473
474                                         <para>systemd automatically
475                                         adds dependencies of type
476                                         <varname>After=</varname> for
477                                         this target unit to all SysV
478                                         init script service units with
479                                         an LSB header referring to the
480                                         <literal>$remote_fs</literal>
481                                         facility.</para>
482                                 </listitem>
483                         </varlistentry>
484                         <varlistentry>
485                                 <term><filename>remote-fs-setup.target</filename></term>
486                                 <listitem>
487                                         <para>This target unit is
488                                         automatically pulled in (by a
489                                         <varname>Wants=</varname> type
490                                         dependency) by all remote
491                                         mount points. It can be used
492                                         to run certain units when at
493                                         least one remote file system
494                                         is to be mounted. Note that
495                                         this target is not ordered
496                                         against the remote mounts, use
497                                         <filename>remote-fs-pre.target</filename>
498                                         for that (see below).</para>
499
500                                         <para>Again, this target unit
501                                         is <emphasis>not</emphasis>
502                                         suitable for ordering, it is
503                                         only useful for pulling in
504                                         other units.</para>
505                                 </listitem>
506                         </varlistentry>
507                         <varlistentry>
508                                 <term><filename>rescue.target</filename></term>
509                                 <listitem>
510                                         <para>A special target unit
511                                         for setting up the base system
512                                         and a rescue shell.</para>
513
514                                         <para><filename>runlevel1.target</filename>
515                                         is an alias for this target
516                                         unit, for compatibility with SysV.</para>
517                                 </listitem>
518                         </varlistentry>
519                         <varlistentry>
520                                 <term><filename>initrd-root-fs.target</filename></term>
521                                 <listitem>
522                                         <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
523                                         automatically adds
524                                         dependencies of type
525                                         <varname>Before=</varname> to
526                                         the
527                                         <filename>sysroot.mount</filename>
528                                         unit, which is generated from
529                                         the kernel command line.
530                                         </para>
531                                 </listitem>
532                         </varlistentry>
533                         <varlistentry>
534                                 <term><filename>runlevel2.target</filename></term>
535                                 <term><filename>runlevel3.target</filename></term>
536                                 <term><filename>runlevel4.target</filename></term>
537                                 <term><filename>runlevel5.target</filename></term>
538                                 <listitem>
539                                         <para>These are targets that
540                                         are called whenever the SysV
541                                         compatibility code asks for
542                                         runlevel 2, 3, 4, 5,
543                                         respectively. It is a good
544                                         idea to make this an alias for
545                                         (i.e. symlink to)
546                                         <filename>multi-user.target</filename>
547                                         (for runlevel 2) or
548                                         <filename>graphical.target</filename>
549                                         (the others).</para>
550                                 </listitem>
551                         </varlistentry>
552                         <varlistentry>
553                                 <term><filename>shutdown.target</filename></term>
554                                 <listitem>
555                                         <para>A special target unit
556                                         that terminates the services
557                                         on system shutdown.</para>
558
559                                         <para>Services that shall be
560                                         terminated on system shutdown
561                                         shall add <varname>Conflicts=</varname>
562                                         dependencies to this unit for
563                                         their service unit, which is
564                                         implicitly done when
565                                         <varname>DefaultDependencies=yes</varname>
566                                         is set (the default).</para>
567                                 </listitem>
568                         </varlistentry>
569                         <varlistentry>
570                                 <term><filename>sigpwr.target</filename></term>
571                                 <listitem>
572                                         <para>A special target that is
573                                         started when systemd receives
574                                         the SIGPWR process signal,
575                                         which is normally sent by the
576                                         kernel or UPS daemons when
577                                         power fails.</para>
578                                 </listitem>
579                         </varlistentry>
580                         <varlistentry>
581                                 <term><filename>sleep.target</filename></term>
582                                 <listitem>
583                                         <para>A special target unit
584                                         that is pulled in by
585                                         <filename>suspend.target</filename>,
586                                         <filename>hibernate.target</filename>
587                                         and
588                                         <filename>hybrid-sleep.target</filename>
589                                         and may be used to hook units
590                                         into the sleep state
591                                         logic.</para>
592                                 </listitem>
593                         </varlistentry>
594                         <varlistentry>
595                                 <term><filename>sockets.target</filename></term>
596                                 <listitem>
597                                         <para>A special target unit
598                                         that sets up all socket
599                                         units.(see
600                                         <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
601                                         for details) that shall be
602                                         active after boot.</para>
603
604                                         <para>Services that can be
605                                         socket-activated shall add
606                                         <varname>Wants=</varname>
607                                         dependencies to this unit for
608                                         their socket unit during
609                                         installation. This is best
610                                         configured via a
611                                         <varname>WantedBy=sockets.target</varname>
612                                         in the socket unit's
613                                         <literal>[Install]</literal>
614                                         section.</para>
615                                 </listitem>
616                         </varlistentry>
617                         <varlistentry>
618                                 <term><filename>suspend.target</filename></term>
619                                 <listitem>
620                                         <para>A special target unit
621                                         for suspending the
622                                         system. This pulls in
623                                         <filename>sleep.target</filename>.</para>
624                                 </listitem>
625                         </varlistentry>
626                         <varlistentry>
627                                 <term><filename>swap.target</filename></term>
628                                 <listitem>
629                                         <para>Similar to
630                                         <filename>local-fs.target</filename>, but for swap
631                                         partitions and swap
632                                         files.</para>
633                                 </listitem>
634                         </varlistentry>
635                         <varlistentry>
636                                 <term><filename>sysinit.target</filename></term>
637                                 <listitem>
638                                         <para>A special target unit
639                                         covering early boot-up scripts.</para>
640                                 </listitem>
641                         </varlistentry>
642                         <varlistentry>
643                                 <term><filename>syslog.socket</filename></term>
644                                 <listitem>
645                                         <para>The socket unit
646                                         syslog implementations should
647                                         listen on. All userspace log
648                                         messages will be made
649                                         available on this socket. For
650                                         more information about syslog
651                                         integration, please consult
652                                         the <ulink
653                                         url="http://www.freedesktop.org/wiki/Software/systemd/syslog">Syslog
654                                         Interface</ulink>
655                                         document.</para>
656                                 </listitem>
657                         </varlistentry>
658                         <varlistentry>
659                                 <term><filename>system-update.target</filename></term>
660                                 <listitem>
661                                         <para>A special target unit
662                                         that is used for off-line
663                                         system updates.
664                                         <citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
665                                         will redirect the boot process
666                                         to this target if
667                                         <filename>/system-update</filename>
668                                         exists. For more information
669                                         see the <ulink
670                                         url="http://freedesktop.org/wiki/Software/systemd/SystemUpdates">System
671                                         Updates
672                                         Specification</ulink>.</para>
673                                 </listitem>
674                         </varlistentry>
675                         <varlistentry>
676                                 <term><filename>timers.target</filename></term>
677                                 <listitem>
678                                         <para>A special target unit
679                                         that sets up all timer
680                                         units (see
681                                         <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
682                                         for details) that shall be
683                                         active after boot.</para>
684
685                                         <para>It is recommended that
686                                         timer units installed by
687                                         applications get pulled in via
688                                         <varname>Wants=</varname>
689                                         dependencies from this
690                                         unit. This is best configured
691                                         via
692                                         <varname>WantedBy=timers.target</varname>
693                                         in the timer unit's
694                                         <literal>[Install]</literal>
695                                         section.</para>
696                                 </listitem>
697                         </varlistentry>
698                         <varlistentry>
699                                 <term><filename>umount.target</filename></term>
700                                 <listitem>
701                                         <para>A special target unit
702                                         that umounts all mount and
703                                         automount points on system
704                                         shutdown.</para>
705
706                                         <para>Mounts that shall be
707                                         unmounted on system shutdown
708                                         shall add Conflicts
709                                         dependencies to this unit for
710                                         their mount unit, which is
711                                         implicitly done when
712                                         <varname>DefaultDependencies=yes</varname>
713                                         is set (the default).</para>
714                                 </listitem>
715                         </varlistentry>
716
717                 </variablelist>
718         </refsect1>
719
720         <refsect1>
721                 <title>Special System Units for Devices</title>
722
723                 <para>Some target units are automatically pulled in as
724                 devices of certain kinds show up in the system. These
725                 may be used to automatically activate various services
726                 based on the specific type of the available
727                 hardware.</para>
728
729                 <variablelist>
730                         <varlistentry>
731                                 <term><filename>bluetooth.target</filename></term>
732                                 <listitem>
733                                         <para>This target is started
734                                         automatically as soon as a
735                                         Bluetooth controller is
736                                         plugged in or becomes
737                                         available at boot.</para>
738
739                                         <para>This may be used to pull
740                                         in Bluetooth management
741                                         daemons dynamically when
742                                         Bluetooth hardware is
743                                         found.</para>
744                                 </listitem>
745                         </varlistentry>
746                         <varlistentry>
747                                 <term><filename>printer.target</filename></term>
748                                 <listitem>
749                                         <para>This target is started
750                                         automatically as soon as a
751                                         printer is plugged in or
752                                         becomes available at
753                                         boot.</para>
754
755                                         <para>This may be used to pull
756                                         in printer management
757                                         daemons dynamically when
758                                         printer hardware is
759                                         found.</para>
760                                 </listitem>
761                         </varlistentry>
762                         <varlistentry>
763                                 <term><filename>smartcard.target</filename></term>
764                                 <listitem>
765                                         <para>This target is started
766                                         automatically as soon as a
767                                         smartcard controller is
768                                         plugged in or becomes
769                                         available at boot.</para>
770
771                                         <para>This may be used to pull
772                                         in printer management
773                                         daemons dynamically when
774                                         smartcard hardware is
775                                         found.</para>
776                                 </listitem>
777                         </varlistentry>
778                         <varlistentry>
779                                 <term><filename>sound.target</filename></term>
780                                 <listitem>
781                                         <para>This target is started
782                                         automatically as soon as a
783                                         sound card is plugged in or
784                                         becomes available at
785                                         boot.</para>
786
787                                         <para>This may be used to pull
788                                         in audio management daemons
789                                         dynamically when printer
790                                         hardware is found.</para>
791                                 </listitem>
792                         </varlistentry>
793                 </variablelist>
794         </refsect1>
795
796         <refsect1>
797                 <title>Special Passive System Units </title>
798
799                 <para>A number of special system targets are defined
800                 that can be used to properly order boot-up of optional
801                 services. These targets are generally not part of the
802                 initial boot transaction, unless they are explicitly
803                 pulled in by one of the implementing services. Note
804                 specifically, that these <emphasis>passive</emphasis>
805                 target units are generally not pulled in by the
806                 consumer of a service, but by the provider of the
807                 service. This means: a consuming service should order
808                 itself after these targets (as appropriate), but not
809                 pull it in. A providing service should order itself
810                 before these targets (as appropriate) and pull it in
811                 (via a <varname>Wants=</varname> type
812                 dependency).</para>
813
814                 <para>Note that these passive units cannot be started
815                 manually, i.e. <literal>systemctl start
816                 time-sync.target</literal> will fail with an
817                 error. They can only be pulled in by dependency. This
818                 is enforced since they exist for ordering purposes
819                 only and thus are not useful as only unit within a
820                 transaction.</para>
821
822                 <variablelist>
823                         <varlistentry>
824                                 <term><filename>local-fs-pre.target</filename></term>
825                                 <listitem>
826                                         <para>This target unit is
827                                         automatically ordered before
828                                         all local mount points marked
829                                         with <option>auto</option>
830                                         (see above). It can be used to
831                                         execute certain units before
832                                         all local mounts.</para>
833                                 </listitem>
834                         </varlistentry>
835                         <varlistentry>
836                                 <term><filename>nss-lookup.target</filename></term>
837                                 <listitem>
838                                         <para>A target that should be
839                                         used as synchronization point
840                                         for all host/network name
841                                         service lookups. Note that
842                                         this is independent of
843                                         user/group name lookups for
844                                         which
845                                         <filename>nss-user-lookup.target</filename>
846                                         should be used. systemd
847                                         automatically adds
848                                         dependencies of type
849                                         <varname>After=</varname> for
850                                         this target unit to all SysV
851                                         init script service units with
852                                         an LSB header referring to the
853                                         <literal>$named</literal>
854                                         facility.</para>
855                                 </listitem>
856                         </varlistentry>
857                         <varlistentry>
858                                 <term><filename>nss-user-lookup.target</filename></term>
859                                 <listitem>
860                                         <para>A target that should be
861                                         used as synchronization point
862                                         for all user/group name
863                                         service lookups. Note that
864                                         this is independent of
865                                         host/network name lookups for
866                                         which
867                                         <filename>nss-lookup.target</filename>
868                                         should be used. </para>
869                                 </listitem>
870                         </varlistentry>
871                         <varlistentry>
872                                 <term><filename>remote-fs-pre.target</filename></term>
873                                 <listitem>
874                                         <para>This target unit is
875                                         automatically ordered before
876                                         all remote mount point units
877                                         (see above). It can be used to
878                                         run certain units before the
879                                         remote mounts are
880                                         established. Note that this
881                                         unit is generally not part of
882                                         the initial transaction,
883                                         unless the unit that wants to
884                                         be ordered before all remote
885                                         mounts pulls it in via a
886                                         <varname>Wants=</varname> type
887                                         dependency. If the unit wants
888                                         to be pulled in by the first
889                                         remote mount showing up it
890                                         should use
891                                         <filename>remote-fs-setup.target</filename>
892                                         (see above).</para>
893
894                                         <para>Again, this target unit
895                                         is <emphasis>not</emphasis>
896                                         suitable for pulling in other
897                                         units, it is only useful for
898                                         ordering.</para>
899                                 </listitem>
900                         </varlistentry>
901                         <varlistentry>
902                                 <term><filename>rpcbind.target</filename></term>
903                                 <listitem>
904                                         <para>systemd automatically
905                                         adds dependencies of type
906                                         <varname>After=</varname> for
907                                         this target unit to all SysV
908                                         init script service units with
909                                         an LSB header referring to the
910                                         <literal>$portmap</literal>
911                                         facility.</para>
912                                 </listitem>
913                         </varlistentry>
914                         <varlistentry>
915                                 <term><filename>time-sync.target</filename></term>
916                                 <listitem>
917                                         <para>systemd automatically
918                                         adds dependencies of type
919                                         <varname>After=</varname> for
920                                         this target unit to all SysV
921                                         init script service units with
922                                         an LSB header referring to the
923                                         <literal>$time</literal>
924                                         facility.</para>
925                                 </listitem>
926                         </varlistentry>
927                 </variablelist>
928         </refsect1>
929
930         <refsect1>
931                 <title>Special User Units</title>
932
933                 <para>When systemd runs as a user instance, the
934                 following special units are available, which have
935                 similar definitions as their system counterparts:
936                 <filename>default.target</filename>,
937                 <filename>shutdown.target</filename>,
938                 <filename>sockets.target</filename>,
939                 <filename>timers.target</filename>,
940                 <filename>paths.target</filename>,
941                 <filename>bluetooth.target</filename>,
942                 <filename>printer.target</filename>,
943                 <filename>smartcard.target</filename>,
944                 <filename>sound.target</filename>.</para>
945
946                 <para>In addition the following special unit is
947                 understood only when systemd runs as service instance:</para>
948
949                 <variablelist>
950                         <varlistentry>
951                                 <term><filename>exit.target</filename></term>
952                                 <listitem>
953                                         <para>A special service unit
954                                         for shutting down the
955                                         user service manager.</para>
956
957                                         <para>Applications wanting to
958                                         terminate the user service
959                                         manager should start this
960                                         unit. If systemd receives
961                                         SIGTERM or SIGINT when running
962                                         as user service daemon it will
963                                         start this unit.</para>
964
965                                         <para>Normally, this pulls in
966                                         <filename>shutdown.target</filename>
967                                         which in turn should be
968                                         conflicted by all units that
969                                         want to be shut down on
970                                         user service manager exit.</para>
971                                 </listitem>
972                         </varlistentry>
973                 </variablelist>
974         </refsect1>
975
976         <refsect1>
977                   <title>See Also</title>
978                   <para>
979                           <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
980                           <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
981                           <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
982                           <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
983                           <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
984                           <citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
985                           <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
986                   </para>
987         </refsect1>
988
989 </refentry>