chiark / gitweb /
man/os-release: Add BUILD_ID field
[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>paths.target</filename></term>
392                                 <listitem>
393                                         <para>A special target unit
394                                         that sets up all path units
395                                         (see
396                                         <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>
397                                         for details) that shall be
398                                         active after boot.</para>
399
400                                         <para>It is recommended that
401                                         path units installed by
402                                         applications get pulled in via
403                                         <varname>Wants=</varname>
404                                         dependencies from this
405                                         unit. This is best configured
406                                         via a
407                                         <varname>WantedBy=paths.target</varname>
408                                         in the path unit's
409                                         <literal>[Install]</literal>
410                                         section.</para>
411                                 </listitem>
412                         </varlistentry>
413                         <varlistentry>
414                                 <term><filename>poweroff.target</filename></term>
415                                 <listitem>
416                                         <para>A special target unit
417                                         for shutting down and powering off the system.</para>
418
419                                         <para>Applications wanting to
420                                         power off the system should start
421                                         this unit.</para>
422
423                                         <para><filename>runlevel0.target</filename>
424                                         is an alias for this target
425                                         unit, for compatibility with SysV.</para>
426                                 </listitem>
427                         </varlistentry>
428                         <varlistentry>
429                                 <term><filename>reboot.target</filename></term>
430                                 <listitem>
431                                         <para>A special target unit
432                                         for shutting down and rebooting the system.</para>
433
434                                         <para>Applications wanting to
435                                         reboot the system should start
436                                         this unit.</para>
437
438                                         <para><filename>runlevel6.target</filename>
439                                         is an alias for this target
440                                         unit, for compatibility with SysV.</para>
441                                 </listitem>
442                         </varlistentry>
443                         <varlistentry>
444                                 <term><filename>remote-fs.target</filename></term>
445                                 <listitem>
446                                         <para>Similar to
447                                         <filename>local-fs.target</filename>,
448                                         but for remote mount
449                                         points.</para>
450
451                                         <para>systemd automatically
452                                         adds dependencies of type
453                                         <varname>After=</varname> for
454                                         this target unit to all SysV
455                                         init script service units with
456                                         an LSB header referring to the
457                                         <literal>$remote_fs</literal>
458                                         facility.</para>
459                                 </listitem>
460                         </varlistentry>
461                         <varlistentry>
462                                 <term><filename>remote-fs-setup.target</filename></term>
463                                 <listitem>
464                                         <para>This target unit is
465                                         automatically pulled in (by a
466                                         <varname>Wants=</varname> type
467                                         dependency) by all remote
468                                         mount points. It can be used
469                                         to run certain units when at
470                                         least one remote file system
471                                         is to be mounted. Note that
472                                         this target is not ordered
473                                         against the remote mounts, use
474                                         <filename>remote-fs-pre.target</filename>
475                                         for that (see below).</para>
476
477                                         <para>Again, this target unit
478                                         is <emphasis>not</emphasis>
479                                         suitable for ordering, it is
480                                         only useful for pulling in
481                                         other units.</para>
482                                 </listitem>
483                         </varlistentry>
484                         <varlistentry>
485                                 <term><filename>rescue.target</filename></term>
486                                 <listitem>
487                                         <para>A special target unit
488                                         for setting up the base system
489                                         and a rescue shell.</para>
490
491                                         <para><filename>runlevel1.target</filename>
492                                         is an alias for this target
493                                         unit, for compatibility with SysV.</para>
494                                 </listitem>
495                         </varlistentry>
496                         <varlistentry>
497                                 <term><filename>initrd-root-fs.target</filename></term>
498                                 <listitem>
499                                         <para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>3</manvolnum></citerefentry>
500                                         automatically adds
501                                         dependencies of type
502                                         <varname>Before=</varname> to
503                                         the
504                                         <filename>sysroot.mount</filename>
505                                         unit, which is generated from
506                                         the kernel command line.
507                                         </para>
508                                 </listitem>
509                         </varlistentry>
510                         <varlistentry>
511                                 <term><filename>runlevel2.target</filename></term>
512                                 <term><filename>runlevel3.target</filename></term>
513                                 <term><filename>runlevel4.target</filename></term>
514                                 <term><filename>runlevel5.target</filename></term>
515                                 <listitem>
516                                         <para>These are targets that
517                                         are called whenever the SysV
518                                         compatibility code asks for
519                                         runlevel 2, 3, 4, 5,
520                                         respectively. It is a good
521                                         idea to make this an alias for
522                                         (i.e. symlink to)
523                                         <filename>multi-user.target</filename>
524                                         (for runlevel 2) or
525                                         <filename>graphical.target</filename>
526                                         (the others).</para>
527                                 </listitem>
528                         </varlistentry>
529                         <varlistentry>
530                                 <term><filename>shutdown.target</filename></term>
531                                 <listitem>
532                                         <para>A special target unit
533                                         that terminates the services
534                                         on system shutdown.</para>
535
536                                         <para>Services that shall be
537                                         terminated on system shutdown
538                                         shall add <varname>Conflicts=</varname>
539                                         dependencies to this unit for
540                                         their service unit, which is
541                                         implicitly done when
542                                         <varname>DefaultDependencies=yes</varname>
543                                         is set (the default).</para>
544                                 </listitem>
545                         </varlistentry>
546                         <varlistentry>
547                                 <term><filename>sigpwr.target</filename></term>
548                                 <listitem>
549                                         <para>A special target that is
550                                         started when systemd receives
551                                         the SIGPWR process signal,
552                                         which is normally sent by the
553                                         kernel or UPS daemons when
554                                         power fails.</para>
555                                 </listitem>
556                         </varlistentry>
557                         <varlistentry>
558                                 <term><filename>sleep.target</filename></term>
559                                 <listitem>
560                                         <para>A special target unit
561                                         that is pulled in by
562                                         <filename>suspend.target</filename>,
563                                         <filename>hibernate.target</filename>
564                                         and
565                                         <filename>hybrid-sleep.target</filename>
566                                         and may be used to hook units
567                                         into the sleep state
568                                         logic.</para>
569                                 </listitem>
570                         </varlistentry>
571                         <varlistentry>
572                                 <term><filename>sockets.target</filename></term>
573                                 <listitem>
574                                         <para>A special target unit
575                                         that sets up all socket
576                                         units.(see
577                                         <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
578                                         for details) that shall be
579                                         active after boot.</para>
580
581                                         <para>Services that can be
582                                         socket-activated shall add
583                                         <varname>Wants=</varname>
584                                         dependencies to this unit for
585                                         their socket unit during
586                                         installation. This is best
587                                         configured via a
588                                         <varname>WantedBy=sockets.target</varname>
589                                         in the socket unit's
590                                         <literal>[Install]</literal>
591                                         section.</para>
592                                 </listitem>
593                         </varlistentry>
594                         <varlistentry>
595                                 <term><filename>suspend.target</filename></term>
596                                 <listitem>
597                                         <para>A special target unit
598                                         for suspending the
599                                         system. This pulls in
600                                         <filename>sleep.target</filename>.</para>
601                                 </listitem>
602                         </varlistentry>
603                         <varlistentry>
604                                 <term><filename>swap.target</filename></term>
605                                 <listitem>
606                                         <para>Similar to
607                                         <filename>local-fs.target</filename>, but for swap
608                                         partitions and swap
609                                         files.</para>
610                                 </listitem>
611                         </varlistentry>
612                         <varlistentry>
613                                 <term><filename>sysinit.target</filename></term>
614                                 <listitem>
615                                         <para>A special target unit
616                                         covering early boot-up scripts.</para>
617                                 </listitem>
618                         </varlistentry>
619                         <varlistentry>
620                                 <term><filename>syslog.socket</filename></term>
621                                 <listitem>
622                                         <para>The socket unit
623                                         syslog implementations should
624                                         listen on. All userspace log
625                                         messages will be made
626                                         available on this socket. For
627                                         more information about syslog
628                                         integration, please consult
629                                         the <ulink
630                                         url="http://www.freedesktop.org/wiki/Software/systemd/syslog">Syslog
631                                         Interface</ulink>
632                                         document.</para>
633                                 </listitem>
634                         </varlistentry>
635                         <varlistentry>
636                                 <term><filename>system-update.target</filename></term>
637                                 <listitem>
638                                         <para>A special target unit
639                                         that is used for off-line
640                                         system updates.
641                                         <citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
642                                         will redirect the boot process
643                                         to this target if
644                                         <filename>/system-update</filename>
645                                         exists. For more information
646                                         see the <ulink
647                                         url="http://freedesktop.org/wiki/Software/systemd/SystemUpdates">System
648                                         Updates
649                                         Specification</ulink>.</para>
650                                 </listitem>
651                         </varlistentry>
652                         <varlistentry>
653                                 <term><filename>timers.target</filename></term>
654                                 <listitem>
655                                         <para>A special target unit
656                                         that sets up all timer
657                                         units (see
658                                         <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
659                                         for details) that shall be
660                                         active after boot.</para>
661
662                                         <para>It is recommended that
663                                         timer units installed by
664                                         applications get pulled in via
665                                         <varname>Wants=</varname>
666                                         dependencies from this
667                                         unit. This is best configured
668                                         via
669                                         <varname>WantedBy=timers.target</varname>
670                                         in the timer unit's
671                                         <literal>[Install]</literal>
672                                         section.</para>
673                                 </listitem>
674                         </varlistentry>
675                         <varlistentry>
676                                 <term><filename>umount.target</filename></term>
677                                 <listitem>
678                                         <para>A special target unit
679                                         that umounts all mount and
680                                         automount points on system
681                                         shutdown.</para>
682
683                                         <para>Mounts that shall be
684                                         unmounted on system shutdown
685                                         shall add Conflicts
686                                         dependencies to this unit for
687                                         their mount unit, which is
688                                         implicitly done when
689                                         <varname>DefaultDependencies=yes</varname>
690                                         is set (the default).</para>
691                                 </listitem>
692                         </varlistentry>
693
694                 </variablelist>
695         </refsect1>
696
697         <refsect1>
698                 <title>Special System Units for Devices</title>
699
700                 <para>Some target units are automatically pulled in as
701                 devices of certain kinds show up in the system. These
702                 may be used to automatically activate various services
703                 based on the specific type of the available
704                 hardware.</para>
705
706                 <variablelist>
707                         <varlistentry>
708                                 <term><filename>bluetooth.target</filename></term>
709                                 <listitem>
710                                         <para>This target is started
711                                         automatically as soon as a
712                                         Bluetooth controller is
713                                         plugged in or becomes
714                                         available at boot.</para>
715
716                                         <para>This may be used to pull
717                                         in Bluetooth management
718                                         daemons dynamically when
719                                         Bluetooth hardware is
720                                         found.</para>
721                                 </listitem>
722                         </varlistentry>
723                         <varlistentry>
724                                 <term><filename>printer.target</filename></term>
725                                 <listitem>
726                                         <para>This target is started
727                                         automatically as soon as a
728                                         printer is plugged in or
729                                         becomes available at
730                                         boot.</para>
731
732                                         <para>This may be used to pull
733                                         in printer management
734                                         daemons dynamically when
735                                         printer hardware is
736                                         found.</para>
737                                 </listitem>
738                         </varlistentry>
739                         <varlistentry>
740                                 <term><filename>smartcard.target</filename></term>
741                                 <listitem>
742                                         <para>This target is started
743                                         automatically as soon as a
744                                         smartcard controller is
745                                         plugged in or becomes
746                                         available at boot.</para>
747
748                                         <para>This may be used to pull
749                                         in printer management
750                                         daemons dynamically when
751                                         smartcard hardware is
752                                         found.</para>
753                                 </listitem>
754                         </varlistentry>
755                         <varlistentry>
756                                 <term><filename>sound.target</filename></term>
757                                 <listitem>
758                                         <para>This target is started
759                                         automatically as soon as a
760                                         sound card is plugged in or
761                                         becomes available at
762                                         boot.</para>
763
764                                         <para>This may be used to pull
765                                         in audio management daemons
766                                         dynamically when printer
767                                         hardware is found.</para>
768                                 </listitem>
769                         </varlistentry>
770                 </variablelist>
771         </refsect1>
772
773         <refsect1>
774                 <title>Special Passive System Units </title>
775
776                 <para>A number of special system targets are defined
777                 that can be used to properly order boot-up of optional
778                 services. These targets are generally not part of the
779                 initial boot transaction, unless they are explicitly
780                 pulled in by one of the implementing services. Note
781                 specifically, that these <emphasis>passive</emphasis>
782                 target units are generally not pulled in by the
783                 consumer of a service, but by the provider of the
784                 service. This means: a consuming service should order
785                 itself after these targets (as appropriate), but not
786                 pull it in. A providing service should order itself
787                 before these targets (as appropriate) and pull it in
788                 (via a <varname>Wants=</varname> type
789                 dependency).</para>
790
791                 <para>Note that these passive units cannot be started
792                 manually, i.e. <literal>systemctl start
793                 time-sync.target</literal> will fail with an
794                 error. They can only be pulled in by dependency. This
795                 is enforced since they exist for ordering purposes
796                 only and thus are not useful as only unit within a
797                 transaction.</para>
798
799                 <variablelist>
800                         <varlistentry>
801                                 <term><filename>local-fs-pre.target</filename></term>
802                                 <listitem>
803                                         <para>This target unit is
804                                         automatically ordered before
805                                         all local mount points marked
806                                         with <option>auto</option>
807                                         (see above). It can be used to
808                                         execute certain units before
809                                         all local mounts.</para>
810                                 </listitem>
811                         </varlistentry>
812                         <varlistentry>
813                                 <term><filename>network.target</filename></term>
814                                 <listitem>
815                                         <para>systemd automatically
816                                         adds dependencies of type
817                                         <varname>After=</varname> for
818                                         this target unit to all SysV
819                                         init script service units with
820                                         an LSB header referring to the
821                                         <literal>$network</literal>
822                                         facility.</para>
823
824                                         <para>This unit is supposed to
825                                         indicate when the network is
826                                         "up", but it is only very
827                                         loosely defined what that is
828                                         supposed to mean. Also see <ulink
829                                         url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
830                                         Services After the Network is
831                                         up</ulink> for more
832                                         information.</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>