]> git.ipfire.org Git - thirdparty/systemd.git/blob - man/systemd.unit.xml
core: add global settings for enabling CPUAccounting=, MemoryAccounting=, BlockIOAcco...
[thirdparty/systemd.git] / man / systemd.unit.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 <!ENTITY % entities SYSTEM "custom-entities.ent" >
5 %entities;
6 ]>
7
8 <!--
9 This file is part of systemd.
10
11 Copyright 2010 Lennart Poettering
12
13 systemd is free software; you can redistribute it and/or modify it
14 under the terms of the GNU Lesser General Public License as published by
15 the Free Software Foundation; either version 2.1 of the License, or
16 (at your option) any later version.
17
18 systemd is distributed in the hope that it will be useful, but
19 WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 Lesser General Public License for more details.
22
23 You should have received a copy of the GNU Lesser General Public License
24 along with systemd; If not, see <http://www.gnu.org/licenses/>.
25 -->
26
27 <refentry id="systemd.unit">
28
29 <refentryinfo>
30 <title>systemd.unit</title>
31 <productname>systemd</productname>
32
33 <authorgroup>
34 <author>
35 <contrib>Developer</contrib>
36 <firstname>Lennart</firstname>
37 <surname>Poettering</surname>
38 <email>lennart@poettering.net</email>
39 </author>
40 </authorgroup>
41 </refentryinfo>
42
43 <refmeta>
44 <refentrytitle>systemd.unit</refentrytitle>
45 <manvolnum>5</manvolnum>
46 </refmeta>
47
48 <refnamediv>
49 <refname>systemd.unit</refname>
50 <refpurpose>Unit configuration</refpurpose>
51 </refnamediv>
52
53 <refsynopsisdiv>
54 <para><filename><replaceable>service</replaceable>.service</filename>,
55 <filename><replaceable>socket</replaceable>.socket</filename>,
56 <filename><replaceable>device</replaceable>.device</filename>,
57 <filename><replaceable>mount</replaceable>.mount</filename>,
58 <filename><replaceable>automount</replaceable>.automount</filename>,
59 <filename><replaceable>swap</replaceable>.swap</filename>,
60 <filename><replaceable>target</replaceable>.target</filename>,
61 <filename><replaceable>path</replaceable>.path</filename>,
62 <filename><replaceable>timer</replaceable>.timer</filename>,
63 <filename><replaceable>snapshot</replaceable>.snapshot</filename>,
64 <filename><replaceable>slice</replaceable>.slice</filename>,
65 <filename><replaceable>scope</replaceable>.scope</filename></para>
66
67 <para><literallayout><filename>/etc/systemd/system/*</filename>
68 <filename>/run/systemd/system/*</filename>
69 <filename>/usr/lib/systemd/system/*</filename>
70 <filename>...</filename>
71 </literallayout></para>
72
73 <para><literallayout><filename>$HOME/.config/systemd/user/*</filename>
74 <filename>/etc/systemd/user/*</filename>
75 <filename>/run/systemd/user/*</filename>
76 <filename>/usr/lib/systemd/user/*</filename>
77 <filename>...</filename>
78 </literallayout></para>
79 </refsynopsisdiv>
80
81 <refsect1>
82 <title>Description</title>
83
84 <para>A unit configuration file encodes information
85 about a service, a socket, a device, a mount point, an
86 automount point, a swap file or partition, a start-up
87 target, a watched file system path, a timer controlled
88 and supervised by
89 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
90 a temporary system state snapshot, a resource
91 management slice or a group of externally created
92 processes. The syntax is inspired by <ulink
93 url="http://standards.freedesktop.org/desktop-entry-spec/latest/">XDG
94 Desktop Entry Specification</ulink>
95 <filename>.desktop</filename> files, which are in turn
96 inspired by Microsoft Windows
97 <filename>.ini</filename> files.</para>
98
99 <para>This man page lists the common configuration
100 options of all the unit types. These options need to
101 be configured in the [Unit] or [Install]
102 sections of the unit files.</para>
103
104 <para>In addition to the generic [Unit] and [Install]
105 sections described here, each unit may have a
106 type-specific section, e.g. [Service] for a service
107 unit. See the respective man pages for more
108 information:
109 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
110 <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
111 <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
112 <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
113 <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
114 <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
115 <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
116 <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
117 <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
118 <citerefentry><refentrytitle>systemd.snapshot</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
119 <citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
120 <citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
121 </para>
122
123 <para>Various settings are allowed to be specified
124 more than once, in which case the interpretation
125 depends on the setting. Often, multiple settings form
126 a list, and setting to an empty value "resets", which
127 means that previous assignments are ignored. When this
128 is allowed, it is mentioned in the description of the
129 setting. Note that using multiple assignments to the
130 same value makes the unit file incompatible with
131 parsers for the XDG <filename>.desktop</filename> file
132 format.</para>
133
134 <para>Unit files are loaded from a set of paths
135 determined during compilation, described in the next section.
136 </para>
137
138 <para>Unit files may contain additional options on top
139 of those listed here. If systemd encounters an unknown
140 option, it will write a warning log message but
141 continue loading the unit. If an option is prefixed
142 with <option>X-</option>, it is ignored completely by
143 systemd. Applications may use this to include
144 additional information in the unit files.</para>
145
146 <para>Boolean arguments used in unit files can be
147 written in various formats. For positive settings the
148 strings <option>1</option>, <option>yes</option>,
149 <option>true</option> and <option>on</option> are
150 equivalent. For negative settings, the strings
151 <option>0</option>, <option>no</option>,
152 <option>false</option> and <option>off</option> are
153 equivalent.</para>
154
155 <para>Time span values encoded in unit files can be
156 written in various formats. A stand-alone number
157 specifies a time in seconds. If suffixed with a time
158 unit, the unit is honored. A concatenation of multiple
159 values with units is supported, in which case the
160 values are added up. Example: "50" refers to 50
161 seconds; "2min 200ms" refers to 2 minutes plus 200
162 milliseconds, i.e. 120200ms. The following time units
163 are understood: s, min, h, d, w, ms, us. For details
164 see
165 <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
166
167 <para>Empty lines and lines starting with # or ; are
168 ignored. This may be used for commenting. Lines ending
169 in a backslash are concatenated with the following
170 line while reading and the backslash is replaced by a
171 space character. This may be used to wrap long lines.</para>
172
173 <para>Along with a unit file
174 <filename>foo.service</filename>, the directory
175 <filename>foo.service.wants/</filename> may exist. All
176 unit files symlinked from such a directory are
177 implicitly added as dependencies of type
178 <varname>Wanted=</varname> to the unit. This is useful
179 to hook units into the start-up of other units,
180 without having to modify their unit files. For details
181 about the semantics of <varname>Wanted=</varname>, see
182 below. The preferred way to create symlinks in the
183 <filename>.wants/</filename> directory of a unit file
184 is with the <command>enable</command> command of the
185 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
186 tool which reads information from the [Install]
187 section of unit files (see below). A similar
188 functionality exists for <varname>Requires=</varname>
189 type dependencies as well, the directory suffix is
190 <filename>.requires/</filename> in this case.</para>
191
192 <para>Along with a unit file
193 <filename>foo.service</filename>, a directory
194 <filename>foo.service.d/</filename> may exist. All
195 files with the suffix <literal>.conf</literal> from
196 this directory will be parsed after the file itself is
197 parsed. This is useful to alter or add configuration
198 settings to a unit, without having to modify their
199 unit files. Make sure that the file that is included
200 has the appropriate section headers before any
201 directive.</para>
202
203 <para>Note that while systemd offers a flexible
204 dependency system between units it is recommended to
205 use this functionality only sparingly and instead rely
206 on techniques such as bus-based or socket-based
207 activation which make dependencies implicit, resulting
208 in a both simpler and more flexible system.</para>
209
210 <para>Some unit names reflect paths existing in the
211 file system namespace. Example: a device unit
212 <filename>dev-sda.device</filename> refers to a device
213 with the device node <filename noindex='true'>/dev/sda</filename> in
214 the file system namespace. If this applies, a special
215 way to escape the path name is used, so that the
216 result is usable as part of a filename. Basically,
217 given a path, "/" is replaced by "-", and all
218 unprintable characters and the "-" are replaced by
219 C-style "\x20" escapes. The root directory "/" is
220 encoded as single dash, while otherwise the initial
221 and ending "/" is removed from all paths during
222 transformation. This escaping is reversible.</para>
223
224 <para>Optionally, units may be instantiated from a
225 template file at runtime. This allows creation of
226 multiple units from a single configuration file. If
227 systemd looks for a unit configuration file, it will
228 first search for the literal unit name in the
229 file system. If that yields no success and the unit
230 name contains an <literal>@</literal> character, systemd will look for a
231 unit template that shares the same name but with the
232 instance string (i.e. the part between the <literal>@</literal> character
233 and the suffix) removed. Example: if a service
234 <filename>getty@tty3.service</filename> is requested
235 and no file by that name is found, systemd will look
236 for <filename>getty@.service</filename> and
237 instantiate a service from that configuration file if
238 it is found.</para>
239
240 <para>To refer to the instance string from
241 within the configuration file you may use the special
242 <literal>%i</literal> specifier in many of the
243 configuration options. See below for details.</para>
244
245 <para>If a unit file is empty (i.e. has the file size
246 0) or is symlinked to <filename>/dev/null</filename>,
247 its configuration will not be loaded and it appears
248 with a load state of <literal>masked</literal>, and
249 cannot be activated. Use this as an effective way to
250 fully disable a unit, making it impossible to start it
251 even manually.</para>
252
253 <para>The unit file format is covered by the
254 <ulink
255 url="http://www.freedesktop.org/wiki/Software/systemd/InterfaceStabilityPromise">Interface
256 Stability Promise</ulink>.</para>
257
258 </refsect1>
259
260 <refsect1>
261 <title>Unit Load Path</title>
262
263 <para>Unit files are loaded from a set of paths
264 determined during compilation, described in the two
265 tables below. Unit files found in directories listed
266 earlier override files with the same name in
267 directories lower in the list.</para>
268
269 <para>When systemd is running in user mode
270 (<option>--user</option>) and the variable
271 <varname>$SYSTEMD_UNIT_PATH</varname> is set, this
272 contents of this variable overrides the unit load
273 path.
274 </para>
275
276 <table>
277 <title>
278 Load path when running in system mode (<option>--system</option>).
279 </title>
280
281 <tgroup cols='2'>
282 <colspec colname='path' />
283 <colspec colname='expl' />
284 <thead>
285 <row>
286 <entry>Path</entry>
287 <entry>Description</entry>
288 </row>
289 </thead>
290 <tbody>
291 <row>
292 <entry><filename>/etc/systemd/system</filename></entry>
293 <entry>Local configuration</entry>
294 </row>
295 <row>
296 <entry><filename>/run/systemd/system</filename></entry>
297 <entry>Runtime units</entry>
298 </row>
299 <row>
300 <entry><filename>/usr/lib/systemd/system</filename></entry>
301 <entry>Units of installed packages</entry>
302 </row>
303 </tbody>
304 </tgroup>
305 </table>
306
307 <table>
308 <title>
309 Load path when running in user mode (<option>--user</option>).
310 </title>
311
312 <tgroup cols='2'>
313 <colspec colname='path' />
314 <colspec colname='expl' />
315 <thead>
316 <row>
317 <entry>Path</entry>
318 <entry>Description</entry>
319 </row>
320 </thead>
321 <tbody>
322 <row>
323 <entry><filename>$HOME/.config/systemd/user</filename></entry>
324 <entry>User configuration</entry>
325 </row>
326 <row>
327 <entry><filename>/etc/systemd/user</filename></entry>
328 <entry>Local configuration</entry>
329 </row>
330 <row>
331 <entry><filename>/run/systemd/user</filename></entry>
332 <entry>Runtime units</entry>
333 </row>
334 <row>
335 <entry><filename>/usr/lib/systemd/user</filename></entry>
336 <entry>Units of installed packages</entry>
337 </row>
338 </tbody>
339 </tgroup>
340 </table>
341
342 <para>Additional units might be loaded into systemd
343 ("linked") from directories not on the unit load
344 path. See the <command>link</command> command for
345 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>. Also,
346 some units are dynamically created via generators
347 <ulink
348 url="http://www.freedesktop.org/wiki/Software/systemd/Generators/">Generators</ulink>.
349 </para>
350 </refsect1>
351
352 <refsect1>
353 <title>[Unit] Section Options</title>
354
355 <para>Unit file may include a [Unit] section, which
356 carries generic information about the unit that is not
357 dependent on the type of unit:</para>
358
359 <variablelist class='unit-directives'>
360
361 <varlistentry>
362 <term><varname>Description=</varname></term>
363 <listitem><para>A free-form string
364 describing the unit. This is intended
365 for use in UIs to show descriptive
366 information along with the unit
367 name. The description should contain a name
368 that means something to the end user.
369 <literal>Apache2 Web Server</literal> is a good
370 example. Bad examples are
371 <literal>high-performance light-weight HTTP
372 server</literal> (too generic) or
373 <literal>Apache2</literal> (too specific and
374 meaningless for people who do not know
375 Apache).</para></listitem>
376 </varlistentry>
377
378 <varlistentry>
379 <term><varname>Documentation=</varname></term>
380 <listitem><para>A space-separated list
381 of URIs referencing documentation for
382 this unit or its
383 configuration. Accepted are only URIs
384 of the types
385 <literal>http://</literal>,
386 <literal>https://</literal>,
387 <literal>file:</literal>,
388 <literal>info:</literal>,
389 <literal>man:</literal>. For more
390 information about the syntax of these
391 URIs, see
392 <citerefentry><refentrytitle>uri</refentrytitle><manvolnum>7</manvolnum></citerefentry>. The
393 URIs should be listed in order of
394 relevance, starting with the most
395 relevant. It is a good idea to first
396 reference documentation that explains
397 what the unit's purpose is, followed
398 by how it is configured, followed by
399 any other related documentation. This
400 option may be specified more than once,
401 in which case the specified list of
402 URIs is merged. If the empty string is
403 assigned to this option, the list is
404 reset and all prior assignments will
405 have no effect.</para></listitem>
406 </varlistentry>
407
408 <varlistentry>
409 <term><varname>Requires=</varname></term>
410
411 <listitem><para>Configures requirement
412 dependencies on other units. If this
413 unit gets activated, the units listed
414 here will be activated as well. If one
415 of the other units gets deactivated or
416 its activation fails, this unit will
417 be deactivated. This option may be
418 specified more than once or multiple
419 space-separated units may be specified
420 in one option in which case
421 requirement dependencies for all
422 listed names will be created. Note
423 that requirement dependencies do not
424 influence the order in which services
425 are started or stopped. This has to be
426 configured independently with the
427 <varname>After=</varname> or
428 <varname>Before=</varname> options. If
429 a unit
430 <filename>foo.service</filename>
431 requires a unit
432 <filename>bar.service</filename> as
433 configured with
434 <varname>Requires=</varname> and no
435 ordering is configured with
436 <varname>After=</varname> or
437 <varname>Before=</varname>, then both
438 units will be started simultaneously
439 and without any delay between them if
440 <filename>foo.service</filename> is
441 activated. Often it is a better choice
442 to use <varname>Wants=</varname>
443 instead of
444 <varname>Requires=</varname> in order
445 to achieve a system that is more
446 robust when dealing with failing
447 services.</para>
448
449 <para>Note that dependencies of this
450 type may also be configured outside of
451 the unit configuration file by
452 adding a symlink to a
453 <filename>.requires/</filename> directory
454 accompanying the unit file. For
455 details see above.</para></listitem>
456 </varlistentry>
457
458 <varlistentry>
459 <term><varname>RequiresOverridable=</varname></term>
460
461 <listitem><para>Similar to
462 <varname>Requires=</varname>.
463 Dependencies listed in
464 <varname>RequiresOverridable=</varname>
465 which cannot be fulfilled or fail to
466 start are ignored if the startup was
467 explicitly requested by the user. If
468 the start-up was pulled in indirectly
469 by some dependency or automatic
470 start-up of units that is not
471 requested by the user, this dependency
472 must be fulfilled and otherwise the
473 transaction fails. Hence, this option
474 may be used to configure dependencies
475 that are normally honored unless the
476 user explicitly starts up the unit, in
477 which case whether they failed or not
478 is irrelevant.</para></listitem>
479
480 </varlistentry>
481 <varlistentry>
482 <term><varname>Requisite=</varname></term>
483 <term><varname>RequisiteOverridable=</varname></term>
484
485 <listitem><para>Similar to
486 <varname>Requires=</varname> and
487 <varname>RequiresOverridable=</varname>,
488 respectively. However, if the units
489 listed here are not started already,
490 they will not be started and the
491 transaction will fail immediately.
492 </para></listitem>
493 </varlistentry>
494
495 <varlistentry>
496 <term><varname>Wants=</varname></term>
497
498 <listitem><para>A weaker version of
499 <varname>Requires=</varname>. Units
500 listed in this option will be started
501 if the configuring unit is. However,
502 if the listed units fail to start
503 or cannot be added to the transaction,
504 this has no impact on the validity of
505 the transaction as a whole. This is
506 the recommended way to hook start-up
507 of one unit to the start-up of another
508 unit.</para>
509
510 <para>Note that dependencies of this
511 type may also be configured outside of
512 the unit configuration file by adding
513 symlinks to a
514 <filename>.wants/</filename> directory
515 accompanying the unit file. For
516 details, see above.</para></listitem>
517 </varlistentry>
518
519 <varlistentry>
520 <term><varname>BindsTo=</varname></term>
521
522 <listitem><para>Configures requirement
523 dependencies, very similar in style to
524 <varname>Requires=</varname>, however
525 in addition to this behavior, it also
526 declares that this unit is stopped
527 when any of the units listed suddenly
528 disappears. Units can suddenly,
529 unexpectedly disappear if a service
530 terminates on its own choice, a device
531 is unplugged or a mount point
532 unmounted without involvement of
533 systemd.</para></listitem>
534 </varlistentry>
535
536 <varlistentry>
537 <term><varname>PartOf=</varname></term>
538
539 <listitem><para>Configures dependencies
540 similar to <varname>Requires=</varname>,
541 but limited to stopping and restarting
542 of units. When systemd stops or restarts
543 the units listed here, the action is
544 propagated to this unit.
545 Note that this is a one-way dependency —
546 changes to this unit do not affect the
547 listed units.
548 </para></listitem>
549 </varlistentry>
550
551 <varlistentry>
552 <term><varname>Conflicts=</varname></term>
553
554 <listitem><para>A space-separated list
555 of unit names. Configures negative
556 requirement dependencies. If a unit
557 has a <varname>Conflicts=</varname>
558 setting on another unit, starting the
559 former will stop the latter and vice
560 versa. Note that this setting is
561 independent of and orthogonal to the
562 <varname>After=</varname> and
563 <varname>Before=</varname> ordering
564 dependencies.</para>
565
566 <para>If a unit A that conflicts with
567 a unit B is scheduled to be started at
568 the same time as B, the transaction
569 will either fail (in case both are
570 required part of the transaction) or
571 be modified to be fixed (in case one
572 or both jobs are not a required part
573 of the transaction). In the latter
574 case, the job that is not the required
575 will be removed, or in case both are
576 not required, the unit that conflicts
577 will be started and the unit that is
578 conflicted is
579 stopped.</para></listitem>
580 </varlistentry>
581
582 <varlistentry>
583 <term><varname>Before=</varname></term>
584 <term><varname>After=</varname></term>
585
586 <listitem><para>A space-separated list
587 of unit names. Configures ordering
588 dependencies between units. If a unit
589 <filename>foo.service</filename>
590 contains a setting
591 <option>Before=bar.service</option>
592 and both units are being started,
593 <filename>bar.service</filename>'s
594 start-up is delayed until
595 <filename>foo.service</filename> is
596 started up. Note that this setting is
597 independent of and orthogonal to the
598 requirement dependencies as configured
599 by <varname>Requires=</varname>. It is
600 a common pattern to include a unit
601 name in both the
602 <varname>After=</varname> and
603 <varname>Requires=</varname> option, in
604 which case the unit listed will be
605 started before the unit that is
606 configured with these options. This
607 option may be specified more than
608 once, in which case ordering
609 dependencies for all listed names are
610 created. <varname>After=</varname> is
611 the inverse of
612 <varname>Before=</varname>, i.e. while
613 <varname>After=</varname> ensures that
614 the configured unit is started after
615 the listed unit finished starting up,
616 <varname>Before=</varname> ensures the
617 opposite, i.e. that the configured
618 unit is fully started up before the
619 listed unit is started. Note that when
620 two units with an ordering dependency
621 between them are shut down, the
622 inverse of the start-up order is
623 applied. i.e. if a unit is configured
624 with <varname>After=</varname> on
625 another unit, the former is stopped
626 before the latter if both are shut
627 down. If one unit with an ordering
628 dependency on another unit is shut
629 down while the latter is started up,
630 the shut down is ordered before the
631 start-up regardless of whether the
632 ordering dependency is actually of
633 type <varname>After=</varname> or
634 <varname>Before=</varname>. If two
635 units have no ordering dependencies
636 between them, they are shut down or
637 started up simultaneously, and no
638 ordering takes
639 place. </para></listitem>
640 </varlistentry>
641
642 <varlistentry>
643 <term><varname>OnFailure=</varname></term>
644
645 <listitem><para>A space-separated list
646 of one or more units that are
647 activated when this unit enters the
648 <literal>failed</literal>
649 state.</para></listitem>
650 </varlistentry>
651
652 <varlistentry>
653 <term><varname>PropagatesReloadTo=</varname></term>
654 <term><varname>ReloadPropagatedFrom=</varname></term>
655
656 <listitem><para>A space-separated list
657 of one or more units where reload
658 requests on this unit will be
659 propagated to, or reload requests on
660 the other unit will be propagated to
661 this unit, respectively. Issuing a
662 reload request on a unit will
663 automatically also enqueue a reload
664 request on all units that the reload
665 request shall be propagated to via
666 these two settings.</para></listitem>
667 </varlistentry>
668
669 <varlistentry>
670 <term><varname>JoinsNamespaceOf=</varname></term>
671
672 <listitem><para>For units that start
673 processes (such as service units),
674 lists one or more other units whose
675 network and/or temporary file
676 namespace to join. This only applies
677 to unit types which support the
678 <varname>PrivateNetwork=</varname> and
679 <varname>PrivateTmp=</varname>
680 directives (see
681 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
682 for details). If a unit that has this
683 setting set is started, its processes
684 will see the same
685 <filename>/tmp</filename>,
686 <filename>/tmp/var</filename> and
687 network namespace as one listed unit
688 that is started. If multiple listed
689 units are already started, it is not
690 defined which namespace is
691 joined. Note that this setting only
692 has an effect if
693 <varname>PrivateNetwork=</varname>
694 and/or <varname>PrivateTmp=</varname>
695 is enabled for both the unit that
696 joins the namespace and the unit whose
697 namespace is joined.</para></listitem>
698 </varlistentry>
699
700 <varlistentry>
701 <term><varname>RequiresMountsFor=</varname></term>
702
703 <listitem><para>Takes a space-separated
704 list of absolute paths. Automatically
705 adds dependencies of type
706 <varname>Requires=</varname> and
707 <varname>After=</varname> for all
708 mount units required to access the
709 specified path.</para></listitem>
710 </varlistentry>
711
712 <varlistentry>
713 <term><varname>OnFailureJobMode=</varname></term>
714
715 <listitem><para>Takes a value of
716 <literal>fail</literal>,
717 <literal>replace</literal>,
718 <literal>replace-irreversibly</literal>,
719 <literal>isolate</literal>,
720 <literal>flush</literal>,
721 <literal>ignore-dependencies</literal>
722 or
723 <literal>ignore-requirements</literal>. Defaults
724 to
725 <literal>replace</literal>. Specifies
726 how the units listed in
727 <varname>OnFailure=</varname> will be
728 enqueued. See
729 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
730 <option>--job-mode=</option> option
731 for details on the possible values. If
732 this is set to
733 <literal>isolate</literal>, only a
734 single unit may be listed in
735 <varname>OnFailure=</varname>..</para></listitem>
736 </varlistentry>
737
738 <varlistentry>
739 <term><varname>IgnoreOnIsolate=</varname></term>
740
741 <listitem><para>Takes a boolean
742 argument. If <option>true</option>,
743 this unit will not be stopped when
744 isolating another unit. Defaults to
745 <option>false</option>.</para></listitem>
746 </varlistentry>
747
748 <varlistentry>
749 <term><varname>IgnoreOnSnapshot=</varname></term>
750
751 <listitem><para>Takes a boolean
752 argument. If <option>true</option>,
753 this unit will not be included in
754 snapshots. Defaults to
755 <option>true</option> for device and
756 snapshot units, <option>false</option>
757 for the others.</para></listitem>
758 </varlistentry>
759
760 <varlistentry>
761 <term><varname>StopWhenUnneeded=</varname></term>
762
763 <listitem><para>Takes a boolean
764 argument. If <option>true</option>,
765 this unit will be stopped when it is
766 no longer used. Note that in order to
767 minimize the work to be executed,
768 systemd will not stop units by default
769 unless they are conflicting with other
770 units, or the user explicitly
771 requested their shut down. If this
772 option is set, a unit will be
773 automatically cleaned up if no other
774 active unit requires it. Defaults to
775 <option>false</option>.</para></listitem>
776 </varlistentry>
777
778 <varlistentry>
779 <term><varname>RefuseManualStart=</varname></term>
780 <term><varname>RefuseManualStop=</varname></term>
781
782 <listitem><para>Takes a boolean
783 argument. If <option>true</option>,
784 this unit can only be activated
785 or deactivated indirectly. In
786 this case, explicit start-up
787 or termination requested by the
788 user is denied, however if it is
789 started or stopped as a
790 dependency of another unit, start-up
791 or termination will succeed. This
792 is mostly a safety feature to ensure
793 that the user does not accidentally
794 activate units that are not intended
795 to be activated explicitly, and not
796 accidentally deactivate units that are
797 not intended to be deactivated.
798 These options default to
799 <option>false</option>.</para></listitem>
800 </varlistentry>
801
802 <varlistentry>
803 <term><varname>AllowIsolate=</varname></term>
804
805 <listitem><para>Takes a boolean
806 argument. If <option>true</option>,
807 this unit may be used with the
808 <command>systemctl isolate</command>
809 command. Otherwise, this will be
810 refused. It probably is a good idea to
811 leave this disabled except for target
812 units that shall be used similar to
813 runlevels in SysV init systems, just
814 as a precaution to avoid unusable
815 system states. This option defaults to
816 <option>false</option>.</para></listitem>
817 </varlistentry>
818
819 <varlistentry>
820 <term><varname>DefaultDependencies=</varname></term>
821
822 <listitem><para>Takes a boolean
823 argument. If <option>true</option>,
824 (the default), a few default
825 dependencies will implicitly be
826 created for the unit. The actual
827 dependencies created depend on the
828 unit type. For example, for service
829 units, these dependencies ensure that
830 the service is started only after
831 basic system initialization is
832 completed and is properly terminated on
833 system shutdown. See the respective
834 man pages for details. Generally, only
835 services involved with early boot or
836 late shutdown should set this option
837 to <option>false</option>. It is
838 highly recommended to leave this
839 option enabled for the majority of
840 common units. If set to
841 <option>false</option>, this option
842 does not disable all implicit
843 dependencies, just non-essential
844 ones.</para></listitem>
845 </varlistentry>
846
847 <varlistentry>
848 <term><varname>JobTimeoutSec=</varname></term>
849
850 <listitem><para>When clients are
851 waiting for a job of this unit to
852 complete, time out after the specified
853 time. If this time limit is reached,
854 the job will be cancelled, the unit
855 however will not change state or even
856 enter the <literal>failed</literal>
857 mode. This value defaults to 0 (job
858 timeouts disabled), except for device
859 units. NB: this timeout is independent
860 from any unit-specific timeout (for
861 example, the timeout set with
862 <varname>Timeout=</varname> in service
863 units) as the job timeout has no
864 effect on the unit itself, only on the
865 job that might be pending for it. Or
866 in other words: unit-specific timeouts
867 are useful to abort unit state
868 changes, and revert them. The job
869 timeout set with this option however
870 is useful to abort only the job
871 waiting for the unit state to
872 change.</para></listitem>
873 </varlistentry>
874
875 <varlistentry>
876 <term><varname>ConditionArchitecture=</varname></term>
877 <term><varname>ConditionVirtualization=</varname></term>
878 <term><varname>ConditionHost=</varname></term>
879 <term><varname>ConditionKernelCommandLine=</varname></term>
880 <term><varname>ConditionSecurity=</varname></term>
881 <term><varname>ConditionCapability=</varname></term>
882 <term><varname>ConditionACPower=</varname></term>
883 <term><varname>ConditionPathExists=</varname></term>
884 <term><varname>ConditionPathExistsGlob=</varname></term>
885 <term><varname>ConditionPathIsDirectory=</varname></term>
886 <term><varname>ConditionPathIsSymbolicLink=</varname></term>
887 <term><varname>ConditionPathIsMountPoint=</varname></term>
888 <term><varname>ConditionPathIsReadWrite=</varname></term>
889 <term><varname>ConditionDirectoryNotEmpty=</varname></term>
890 <term><varname>ConditionFileNotEmpty=</varname></term>
891 <term><varname>ConditionFileIsExecutable=</varname></term>
892 <term><varname>ConditionNull=</varname></term>
893
894 <listitem><para>Before starting a unit
895 verify that the specified condition is
896 true. If it is not true, the starting
897 of the unit will be skipped, however
898 all ordering dependencies of it are
899 still respected. A failing condition
900 will not result in the unit being
901 moved into a failure state. The
902 condition is checked at the time the
903 queued start job is to be
904 executed.</para>
905
906 <para><varname>ConditionArchitecture=</varname>
907 may be used to check whether the
908 system is running on a specific
909 architecture. Takes one of
910 <varname>x86</varname>,
911 <varname>x86-64</varname>,
912 <varname>ppc</varname>,
913 <varname>ppc64</varname>,
914 <varname>ia64</varname>,
915 <varname>parisc</varname>,
916 <varname>parisc64</varname>,
917 <varname>s390</varname>,
918 <varname>s390x</varname>,
919 <varname>sparc</varname>,
920 <varname>sparc64</varname>,
921 <varname>mips</varname>,
922 <varname>mips64</varname>,
923 <varname>alpha</varname>,
924 <varname>arm</varname>,
925 <varname>arm-be</varname>,
926 <varname>arm64</varname>,
927 <varname>arm64-be</varname>,
928 <varname>sh</varname>,
929 <varname>sh64</varname>,
930 <varname>m86k</varname> to test
931 against a specific architecture. The
932 architecture is determined from the
933 information returned by
934 <citerefentry><refentrytitle>uname</refentrytitle><manvolnum>2</manvolnum></citerefentry>
935 and is thus subject to
936 <citerefentry><refentrytitle>personality</refentrytitle><manvolnum>2</manvolnum></citerefentry>. Note
937 that a <varname>Personality=</varname>
938 setting in the same unit file has no
939 effect on this condition. A special
940 architecture name
941 <varname>native</varname> is mapped to
942 the architecture the system manager
943 itself is compiled for. The test may
944 be negated by prepending an
945 exclamation mark.</para>
946
947 <para><varname>ConditionVirtualization=</varname>
948 may be used to check whether the
949 system is executed in a virtualized
950 environment and optionally test
951 whether it is a specific
952 implementation. Takes either boolean
953 value to check if being executed in
954 any virtualized environment, or one of
955 <varname>vm</varname> and
956 <varname>container</varname> to test
957 against a generic type of
958 virtualization solution, or one of
959 <varname>qemu</varname>,
960 <varname>kvm</varname>,
961 <varname>vmware</varname>,
962 <varname>microsoft</varname>,
963 <varname>oracle</varname>,
964 <varname>xen</varname>,
965 <varname>bochs</varname>,
966 <varname>chroot</varname>,
967 <varname>uml</varname>,
968 <varname>openvz</varname>,
969 <varname>lxc</varname>,
970 <varname>lxc-libvirt</varname>,
971 <varname>systemd-nspawn</varname> to
972 test against a specific
973 implementation. If multiple
974 virtualization technologies are nested,
975 only the innermost is considered. The
976 test may be negated by prepending an
977 exclamation mark.</para>
978
979 <para><varname>ConditionHost=</varname>
980 may be used to match against the
981 hostname or machine ID of the
982 host. This either takes a hostname
983 string (optionally with shell style
984 globs) which is tested against the
985 locally set hostname as returned by
986 <citerefentry><refentrytitle>gethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
987 or a machine ID formatted as string
988 (see
989 <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
990 The test may be negated by prepending
991 an exclamation mark.</para>
992
993 <para><varname>ConditionKernelCommandLine=</varname>
994 may be used to check whether a
995 specific kernel command line option is
996 set (or if prefixed with the
997 exclamation mark unset). The argument
998 must either be a single word, or an
999 assignment (i.e. two words, separated
1000 <literal>=</literal>). In the former
1001 case the kernel command line is
1002 searched for the word appearing as is,
1003 or as left hand side of an
1004 assignment. In the latter case the
1005 exact assignment is looked for with
1006 right and left hand side
1007 matching.</para>
1008
1009 <para><varname>ConditionSecurity=</varname>
1010 may be used to check whether the given
1011 security module is enabled on the
1012 system. Currently the recognized values
1013 values are <varname>selinux</varname>,
1014 <varname>apparmor</varname>,
1015 <varname>ima</varname> and
1016 <varname>smack</varname>.
1017 The test may be negated by prepending
1018 an exclamation
1019 mark.</para>
1020
1021 <para><varname>ConditionCapability=</varname>
1022 may be used to check whether the given
1023 capability exists in the capability
1024 bounding set of the service manager
1025 (i.e. this does not check whether
1026 capability is actually available in
1027 the permitted or effective sets, see
1028 <citerefentry><refentrytitle>capabilities</refentrytitle><manvolnum>7</manvolnum></citerefentry>
1029 for details). Pass a capability name
1030 such as <literal>CAP_MKNOD</literal>,
1031 possibly prefixed with an exclamation
1032 mark to negate the check.</para>
1033
1034 <para><varname>ConditionACPower=</varname>
1035 may be used to check whether the
1036 system has AC power, or is exclusively
1037 battery powered at the time of
1038 activation of the unit. This takes a
1039 boolean argument. If set to
1040 <varname>true</varname>, the condition
1041 will hold only if at least one AC
1042 connector of the system is connected
1043 to a power source, or if no AC
1044 connectors are known. Conversely, if
1045 set to <varname>false</varname>, the
1046 condition will hold only if there is
1047 at least one AC connector known and
1048 all AC connectors are disconnected
1049 from a power source.</para>
1050
1051 <para>With
1052 <varname>ConditionPathExists=</varname>
1053 a file existence condition is
1054 checked before a unit is started. If
1055 the specified absolute path name does
1056 not exist, the condition will
1057 fail. If the absolute path name passed
1058 to
1059 <varname>ConditionPathExists=</varname>
1060 is prefixed with an exclamation mark
1061 (<literal>!</literal>), the test is negated, and the unit
1062 is only started if the path does not
1063 exist.</para>
1064
1065 <para><varname>ConditionPathExistsGlob=</varname>
1066 is similar to
1067 <varname>ConditionPathExists=</varname>,
1068 but checks for the existence of at
1069 least one file or directory matching
1070 the specified globbing pattern.</para>
1071
1072 <para><varname>ConditionPathIsDirectory=</varname>
1073 is similar to
1074 <varname>ConditionPathExists=</varname>
1075 but verifies whether a certain path
1076 exists and is a
1077 directory.</para>
1078
1079 <para><varname>ConditionPathIsSymbolicLink=</varname>
1080 is similar to
1081 <varname>ConditionPathExists=</varname>
1082 but verifies whether a certain path
1083 exists and is a symbolic
1084 link.</para>
1085
1086 <para><varname>ConditionPathIsMountPoint=</varname>
1087 is similar to
1088 <varname>ConditionPathExists=</varname>
1089 but verifies whether a certain path
1090 exists and is a mount
1091 point.</para>
1092
1093 <para><varname>ConditionPathIsReadWrite=</varname>
1094 is similar to
1095 <varname>ConditionPathExists=</varname>
1096 but verifies whether the underlying
1097 file system is readable and writable
1098 (i.e. not mounted
1099 read-only).</para>
1100
1101 <para><varname>ConditionDirectoryNotEmpty=</varname>
1102 is similar to
1103 <varname>ConditionPathExists=</varname>
1104 but verifies whether a certain path
1105 exists and is a non-empty
1106 directory.</para>
1107
1108 <para><varname>ConditionFileNotEmpty=</varname>
1109 is similar to
1110 <varname>ConditionPathExists=</varname>
1111 but verifies whether a certain path
1112 exists and refers to a regular file
1113 with a non-zero size.</para>
1114
1115 <para><varname>ConditionFileIsExecutable=</varname>
1116 is similar to
1117 <varname>ConditionPathExists=</varname>
1118 but verifies whether a certain path
1119 exists, is a regular file and marked
1120 executable.</para>
1121
1122 <para>Finally,
1123 <varname>ConditionNull=</varname> may
1124 be used to add a constant condition
1125 check value to the unit. It takes a
1126 boolean argument. If set to
1127 <varname>false</varname>, the condition
1128 will always fail, otherwise
1129 succeed.</para>
1130
1131 <para>If multiple conditions are
1132 specified, the unit will be executed if
1133 all of them apply (i.e. a logical AND
1134 is applied). Condition checks can be
1135 prefixed with a pipe symbol (|) in
1136 which case a condition becomes a
1137 triggering condition. If at least one
1138 triggering condition is defined for a
1139 unit, then the unit will be executed if
1140 at least one of the triggering
1141 conditions apply and all of the
1142 non-triggering conditions. If you
1143 prefix an argument with the pipe
1144 symbol and an exclamation mark, the
1145 pipe symbol must be passed first, the
1146 exclamation second. Except for
1147 <varname>ConditionPathIsSymbolicLink=</varname>,
1148 all path checks follow symlinks. If
1149 any of these options is assigned the
1150 empty string, the list of conditions is
1151 reset completely, all previous
1152 condition settings (of any kind) will
1153 have no effect.</para></listitem>
1154 </varlistentry>
1155
1156 <varlistentry>
1157 <term><varname>SourcePath=</varname></term>
1158 <listitem><para>A path to a
1159 configuration file this unit has been
1160 generated from. This is primarily
1161 useful for implementation of generator
1162 tools that convert configuration from
1163 an external configuration file format
1164 into native unit files. Thus
1165 functionality should not be used in
1166 normal units.</para></listitem>
1167 </varlistentry>
1168 </variablelist>
1169
1170 </refsect1>
1171
1172 <refsect1>
1173 <title>[Install] Section Options</title>
1174
1175 <para>Unit file may include a [Install] section, which
1176 carries installation information for the unit. This
1177 section is not interpreted by
1178 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
1179 during runtime. It is used exclusively by the
1180 <command>enable</command> and
1181 <command>disable</command> commands of the
1182 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
1183 tool during installation of a unit:</para>
1184
1185 <variablelist class='unit-directives'>
1186 <varlistentry>
1187 <term><varname>Alias=</varname></term>
1188
1189 <listitem><para>A space-seperated list
1190 of additional names this unit shall be
1191 installed under. The names listed here
1192 must have the same suffix (i.e. type)
1193 as the unit file name. This option may
1194 be specified more than once, in which
1195 case all listed names are used. At
1196 installation time, <command>systemctl
1197 enable</command> will create symlinks
1198 from these names to the unit
1199 filename.</para></listitem>
1200 </varlistentry>
1201
1202 <varlistentry>
1203 <term><varname>WantedBy=</varname></term>
1204 <term><varname>RequiredBy=</varname></term>
1205
1206 <listitem><para>This option may be
1207 used more than once, or a
1208 space-separated list of unit names may
1209 be given. A symbolic link is created
1210 in the <filename>.wants/</filename> or
1211 <filename>.requires/</filename>
1212 directory of each of the listed units
1213 when this unit is installed by
1214 <command>systemctl enable</command>.
1215 This has the effect that a dependency
1216 of type <varname>Wants=</varname> or
1217 <varname>Requires=</varname> is added
1218 from the listed unit to the current
1219 unit. The primary result is that the
1220 current unit will be started when the
1221 listed unit is started. See the
1222 description of
1223 <varname>Wants=</varname> and
1224 <varname>Requires=</varname> in the
1225 [Unit] section for details.</para>
1226
1227 <para><command>WantedBy=foo.service</command>
1228 in a service
1229 <filename>bar.service</filename> is
1230 mostly equivalent to
1231 <command>Alias=foo.service.wants/bar.service</command>
1232 in the same file. In case of template
1233 units, <command>systemctl enable</command>
1234 must be called with an instance name, and
1235 this instance will be added to the
1236 <filename>.wants/</filename> or
1237 <filename>.requires/</filename> list
1238 of the listed unit.
1239 E.g. <command>WantedBy=getty.target</command>
1240 in a service
1241 <filename>getty@.service</filename>
1242 will result in <command>systemctl
1243 enable getty@tty2.service</command>
1244 creating a
1245 <filename>getty.target.wants/getty@tty2.service</filename>
1246 link to <filename>getty@.service</filename>.
1247 </para></listitem>
1248 </varlistentry>
1249
1250 <varlistentry>
1251 <term><varname>Also=</varname></term>
1252
1253 <listitem><para>Additional units to
1254 install/deinstall when this unit is
1255 installed/deinstalled. If the user
1256 requests installation/deinstallation
1257 of a unit with this option configured,
1258 <command>systemctl enable</command>
1259 and <command>systemctl
1260 disable</command> will automatically
1261 install/uninstall units listed in this option as
1262 well.</para>
1263
1264 <para>This option may be used more
1265 than once, or a space-separated list
1266 of unit names may be
1267 given.</para></listitem>
1268 </varlistentry>
1269 </variablelist>
1270
1271 <para>The following specifiers are interpreted in the
1272 Install section: %n, %N, %p, %i, %U, %u, %m, %H, %b, %v.
1273 For their meaning see the next section.
1274 </para>
1275 </refsect1>
1276
1277 <refsect1>
1278 <title>Specifiers</title>
1279
1280 <para>Many settings resolve specifiers which may be
1281 used to write generic unit files referring to runtime
1282 or unit parameters that are replaced when the unit
1283 files are loaded. The following specifiers are
1284 understood:</para>
1285
1286 <table>
1287 <title>Specifiers available in unit files</title>
1288 <tgroup cols='3' align='left' colsep='1' rowsep='1'>
1289 <colspec colname="spec" />
1290 <colspec colname="mean" />
1291 <colspec colname="detail" />
1292 <thead>
1293 <row>
1294 <entry>Specifier</entry>
1295 <entry>Meaning</entry>
1296 <entry>Details</entry>
1297 </row>
1298 </thead>
1299 <tbody>
1300 <row>
1301 <entry><literal>%n</literal></entry>
1302 <entry>Full unit name</entry>
1303 <entry></entry>
1304 </row>
1305 <row>
1306 <entry><literal>%N</literal></entry>
1307 <entry>Unescaped full unit name</entry>
1308 <entry>Same as <literal>%n</literal>, but with escaping undone</entry>
1309 </row>
1310 <row>
1311 <entry><literal>%p</literal></entry>
1312 <entry>Prefix name</entry>
1313 <entry>For instantiated units, this refers to the string before the <literal>@</literal> character of the unit name. For non-instantiated units, this refers to the name of the unit with the type suffix removed.</entry>
1314 </row>
1315 <row>
1316 <entry><literal>%P</literal></entry>
1317 <entry>Unescaped prefix name</entry>
1318 <entry>Same as <literal>%p</literal>, but with escaping undone</entry>
1319 </row>
1320 <row>
1321 <entry><literal>%i</literal></entry>
1322 <entry>Instance name</entry>
1323 <entry>For instantiated units: this is the string between the <literal>@</literal> character and the suffix of the unit name.</entry>
1324 </row>
1325 <row>
1326 <entry><literal>%I</literal></entry>
1327 <entry>Unescaped instance name</entry>
1328 <entry>Same as <literal>%i</literal>, but with escaping undone</entry>
1329 </row>
1330 <row>
1331 <entry><literal>%f</literal></entry>
1332 <entry>Unescaped filename</entry>
1333 <entry>This is either the unescaped instance name (if applicable) with <filename>/</filename> prepended (if applicable), or the prefix name prepended with <filename>/</filename>.</entry>
1334 </row>
1335 <row>
1336 <entry><literal>%c</literal></entry>
1337 <entry>Control group path of the unit</entry>
1338 <entry>This path does not include the <filename>/sys/fs/cgroup/systemd/</filename> prefix.</entry>
1339 </row>
1340 <row>
1341 <entry><literal>%r</literal></entry>
1342 <entry>Control group path of the slice the unit is placed in</entry>
1343 <entry>This usually maps to the parent cgroup path of <literal>%c</literal>.</entry>
1344 </row>
1345 <row>
1346 <entry><literal>%R</literal></entry>
1347 <entry>Root control group path below which slices and units are placed</entry>
1348 <entry>For system instances, this resolves to <filename>/</filename>, except in containers, where this maps to the container's root control group path.</entry>
1349 </row>
1350 <row>
1351 <entry><literal>%t</literal></entry>
1352 <entry>Runtime directory</entry>
1353 <entry>This is either <filename>/run</filename> (for the system manager) or the path <literal>$XDG_RUNTIME_DIR</literal> resolves to (for user managers).</entry>
1354 </row>
1355 <row>
1356 <entry><literal>%u</literal></entry>
1357 <entry>User name</entry>
1358 <entry>This is the name of the configured user of the unit, or (if none is set) the user running the systemd instance.</entry>
1359 </row>
1360 <row>
1361 <entry><literal>%U</literal></entry>
1362 <entry>User UID</entry>
1363 <entry>This is the numeric UID of the configured user of the unit, or (if none is set) the user running the systemd user instance. Note that this specifier is not available for units run by the systemd system instance (as opposed to those run by a systemd user instance), unless the user has been configured as a numeric UID in the first place or the configured user is the root user.</entry>
1364 </row>
1365 <row>
1366 <entry><literal>%h</literal></entry>
1367 <entry>User home directory</entry>
1368 <entry>This is the home directory of the configured user of the unit, or (if none is set) the user running the systemd user instance. Similar to <literal>%U</literal>, this specifier is not available for units run by the systemd system instance, unless the configured user is the root user.</entry>
1369 </row>
1370 <row>
1371 <entry><literal>%s</literal></entry>
1372 <entry>User shell</entry>
1373 <entry>This is the shell of the configured user of the unit, or (if none is set) the user running the systemd user instance. Similar to <literal>%U</literal>, this specifier is not available for units run by the systemd system instance, unless the configured user is the root user.</entry>
1374 </row>
1375 <row>
1376 <entry><literal>%m</literal></entry>
1377 <entry>Machine ID</entry>
1378 <entry>The machine ID of the running system, formatted as string. See <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information.</entry>
1379 </row>
1380 <row>
1381 <entry><literal>%b</literal></entry>
1382 <entry>Boot ID</entry>
1383 <entry>The boot ID of the running system, formatted as string. See <citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry> for more information.</entry>
1384 </row>
1385 <row>
1386 <entry><literal>%H</literal></entry>
1387 <entry>Host name</entry>
1388 <entry>The hostname of the running system at the point in time the unit configuation is loaded.</entry>
1389 </row>
1390 <row>
1391 <entry><literal>%v</literal></entry>
1392 <entry>Kernel release</entry>
1393 <entry>Identical to <command>uname -r</command> output</entry>
1394 </row>
1395 <row>
1396 <entry><literal>%%</literal></entry>
1397 <entry>Single percent sign</entry>
1398 <entry>Use <literal>%%</literal> in place of <literal>%</literal> to specify a single percent sign.</entry>
1399 </row>
1400 </tbody>
1401 </tgroup>
1402 </table>
1403 </refsect1>
1404
1405 <refsect1>
1406 <title>See Also</title>
1407 <para>
1408 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
1409 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
1410 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1411 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1412 <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1413 <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1414 <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1415 <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1416 <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1417 <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1418 <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1419 <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1420 <citerefentry><refentrytitle>systemd.snapshot</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1421 <citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1422 <citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1423 <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1424 <citerefentry><refentrytitle>capabilities</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1425 <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1426 <citerefentry><refentrytitle>uname</refentrytitle><manvolnum>1</manvolnum></citerefentry>
1427 </para>
1428 </refsect1>
1429
1430 </refentry>