]>
Commit | Line | Data |
---|---|---|
d1ab0ca0 LP |
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 General Public License as published by | |
12 | the Free Software Foundation; either version 2 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 | General Public License for more details. | |
19 | ||
20 | You should have received a copy of the GNU General Public License | |
21 | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
22 | --> | |
23 | ||
24 | <refentry id="systemd.unit"> | |
25 | ||
26 | <refentryinfo> | |
27 | <title>systemd.unit</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.unit</refentrytitle> | |
42 | <manvolnum>5</manvolnum> | |
43 | </refmeta> | |
44 | ||
45 | <refnamediv> | |
46 | <refname>systemd.unit</refname> | |
47 | <refpurpose>systemd unit configuration files</refpurpose> | |
48 | </refnamediv> | |
49 | ||
50 | <refsynopsisdiv> | |
11e29955 LP |
51 | <para><filename>systemd.service</filename>, |
52 | <filename>systemd.socket</filename>, | |
53 | <filename>systemd.device</filename>, | |
54 | <filename>systemd.mount</filename>, | |
55 | <filename>systemd.automount</filename>, | |
56 | <filename>systemd.swap</filename>, | |
57 | <filename>systemd.target</filename>, | |
58 | <filename>systemd.path</filename>, | |
5f2ee303 LP |
59 | <filename>systemd.timer</filename>, |
60 | <filename>systemd.snapshot</filename></para> | |
d1ab0ca0 LP |
61 | </refsynopsisdiv> |
62 | ||
63 | <refsect1> | |
64 | <title>Description</title> | |
65 | ||
66 | <para>A unit configuration file encodes information | |
771610b0 | 67 | about a service, a socket, a device, a mount point, an |
436c44a5 | 68 | automount point, a swap file or partition, a start-up |
771610b0 | 69 | target, a file system path or a timer controlled and |
11e29955 LP |
70 | supervised by |
71 | <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>. The | |
72 | syntax is inspired by <ulink | |
73 | url="http://standards.freedesktop.org/desktop-entry-spec/latest/">XDG | |
4176e530 | 74 | Desktop Entry Specification</ulink> <filename>.desktop</filename> files, which are in turn |
11e29955 LP |
75 | inspired by Microsoft Windows |
76 | <filename>.ini</filename> files.</para> | |
d1ab0ca0 LP |
77 | |
78 | <para>This man pages lists the common configuration | |
58c16a1a | 79 | options of all the unit types. These options need to |
11e29955 | 80 | be configured in the [Unit] resp. [Install] |
771610b0 | 81 | section of the unit files.</para> |
11e29955 LP |
82 | |
83 | <para>In addition to the generic [Unit] and [Install] | |
58c16a1a | 84 | sections described here, each unit should have a |
11e29955 LP |
85 | type-specific section, e.g. [Service] for a service |
86 | unit. See the respective man pages for more | |
87 | information.</para> | |
88 | ||
89 | <para>Unit files may contain additional options on top | |
90 | of those listed here. If systemd encounters an unknown | |
91 | option it will write a warning log message but | |
92 | continue loading the unit. If an option is prefixed | |
93 | with <option>X-</option> it is ignored completely by | |
94 | systemd. Applications may use this to include | |
95 | additional information in the unit files.</para> | |
96 | ||
97 | <para>Boolean arguments used in unit files can be | |
6cbdbc5f | 98 | written in various formats. For positive settings the |
11e29955 LP |
99 | strings <option>1</option>, <option>yes</option>, |
100 | <option>true</option> and <option>on</option> are | |
101 | equivalent. For negative settings the strings | |
102 | <option>0</option>, <option>no</option>, | |
103 | <option>false</option> and <option>off</option> are | |
104 | equivalent.</para> | |
105 | ||
0d624a78 LP |
106 | <para>Time span values encoded in unit files can be |
107 | written in various formats. A stand-alone number | |
108 | specifies a time in seconds. If suffixed with a time | |
b439c6ee | 109 | unit, the unit is honored. A concatenation of |
58c16a1a | 110 | multiple values with units is supported, in which case |
0d624a78 LP |
111 | the values are added up. Example: "50" refers to 50 |
112 | seconds; "2min 200ms" refers to 2 minutes plus 200 | |
113 | milliseconds, i.e. 120200ms. The following time units | |
114 | are understood: s, min, h, d, w, ms, us.</para> | |
115 | ||
11e29955 | 116 | <para>Empty lines and lines starting with # or ; are |
b3eaa628 LP |
117 | ignored. This may be used for commenting. Lines ending |
118 | in a backslash are concatenated with the following | |
119 | line while reading and the backslash is replaced by a | |
120 | space character. This may be used to wrap long lines.</para> | |
11e29955 LP |
121 | |
122 | <para>If a line starts with <option>.include</option> | |
58c16a1a OÇ |
123 | followed by a file name, the specified file will be |
124 | read as if its contents were listed in place of the | |
11e29955 LP |
125 | <option>.include</option> directive.</para> |
126 | ||
127 | <para>Along with a unit file | |
128 | <filename>foo.service</filename> a directory | |
129 | <filename>foo.service.wants/</filename> may exist. All | |
130 | units symlinked from such a directory are implicitly | |
131 | added as dependencies of type | |
132 | <varname>Wanted=</varname> to the unit. This is useful | |
133 | to hook units into the start-up of other units, | |
134 | without having to modify their unit configuration | |
135 | files. For details about the semantics of | |
136 | <varname>Wanted=</varname> see below. The preferred | |
137 | way to create symlinks in the | |
138 | <filename>.wants/</filename> directory of a service is | |
ee5762e3 LP |
139 | with the <command>enable</command> command of the |
140 | <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> | |
11e29955 LP |
141 | tool which reads information from the [Install] |
142 | section of unit files. (See below.)</para> | |
143 | ||
144 | <para>Note that while systemd offers a flexible | |
145 | dependency system between units it is recommended to | |
146 | use this functionality only sparsely and instead rely | |
147 | on techniques such as bus-based or socket-based | |
148 | activation which makes dependencies implicit, which | |
149 | both results in a simpler and more flexible | |
150 | system.</para> | |
1f812fea LP |
151 | |
152 | <para>Some unit names reflect paths existing in the | |
153 | file system name space. Example: a device unit | |
154 | <filename>dev-sda.device</filename> refers to a device | |
155 | with the device node <filename>/dev/sda</filename> in | |
156 | the file system namespace. If this applies a special | |
085b94ee LP |
157 | way to escape the path name is used, so that the |
158 | result is usable as part of a file name. Basically, | |
159 | given a path, "/" is replaced by "-", and all | |
160 | unprintable characters and the "-" are replaced by | |
161 | C-style "\x20" escapes. The root directory "/" is | |
162 | encoded as single dash, while otherwise the initial | |
163 | and ending "/" is removed from all paths during | |
164 | transformation. This escaping is reversible.</para> | |
1f812fea LP |
165 | |
166 | <para>Optionally, units may be instantiated from a | |
167 | template file at runtime. This allows creation of | |
168 | multiple units from a single configuration file. If | |
169 | systemd looks for a unit configuration file it will | |
170 | first search for the literal unit name in the | |
171 | filesystem. If that yields no success and the unit | |
172 | name contains an @ character, systemd will look for a | |
173 | unit template that shares the same name but with the | |
174 | instance string (i.e. the part between the @ character | |
175 | and the suffix) removed. Example: if a service | |
176 | <filename>getty@tty3.service</filename> is requested | |
177 | and no file by that name is found, systemd will look | |
178 | for <filename>getty@.service</filename> and | |
179 | instantiate a service from that configuration file if | |
180 | it is found. To refer to the instance string from | |
181 | within the configuration file you may use the special | |
182 | <literal>%i</literal> specifier in many of the | |
183 | configuration options. Other specifiers that may be | |
184 | used are <literal>%n</literal>, <literal>%N</literal>, | |
185 | <literal>%p</literal>, <literal>%P</literal> and | |
186 | <literal>%I</literal>, for the full unit name, the | |
187 | unescaped unit name, the prefix name, the unescaped | |
188 | prefix name and the unescaped instance name, | |
189 | respectively. The prefix name here refers to the | |
190 | string before the @, i.e. "getty" in the example | |
191 | above, where "tty3" is the instance name.</para> | |
d1ab0ca0 LP |
192 | </refsect1> |
193 | ||
194 | <refsect1> | |
195 | <title>Options</title> | |
196 | ||
771610b0 LP |
197 | <para>Unit file may include a [Unit] section, which |
198 | carries generic information about the unit that is not | |
199 | dependent on the type of unit:</para> | |
200 | ||
d1ab0ca0 LP |
201 | <variablelist> |
202 | <varlistentry> | |
9f235308 | 203 | <term><varname>Names=</varname></term> |
771610b0 LP |
204 | |
205 | <listitem><para>Additional names for | |
206 | this unit. The names listed here must | |
207 | have the same suffix (i.e. type) as | |
208 | the unit file name. This option may be | |
209 | specified more than once, in which | |
210 | case all listed names are used. Note | |
211 | that this option is different from the | |
212 | <varname>Alias=</varname> option from | |
213 | the [Install] section mentioned | |
11e29955 | 214 | below. See below for details.</para> |
d1ab0ca0 LP |
215 | </listitem> |
216 | </varlistentry> | |
11e29955 LP |
217 | |
218 | <varlistentry> | |
219 | <term><varname>Description=</varname></term> | |
220 | <listitem><para>A free-form string | |
62adf224 LP |
221 | describing the unit. This is intended |
222 | for use in UIs to show descriptive | |
223 | information along with the unit | |
224 | name.</para></listitem> | |
11e29955 LP |
225 | </varlistentry> |
226 | ||
d1ab0ca0 | 227 | <varlistentry> |
9f235308 | 228 | <term><varname>Requires=</varname></term> |
771610b0 | 229 | |
11e29955 | 230 | <listitem><para>Configures requirement |
771610b0 | 231 | dependencies on other units. If this |
58c16a1a | 232 | unit gets activated, the units listed |
771610b0 LP |
233 | here will be activated as well. If one |
234 | of the other units gets deactivated or | |
235 | its activation fails, this unit will | |
236 | be deactivated. This option may be | |
237 | specified more than once, in which | |
238 | case requirement dependencies for all | |
11e29955 LP |
239 | listed names are created. Note that |
240 | requirement dependencies do not | |
241 | influence the order in which services | |
242 | are started or stopped. This has to be | |
243 | configured independently with the | |
244 | <varname>After=</varname> or | |
245 | <varname>Before=</varname> options. If | |
246 | a unit | |
247 | <filename>foo.service</filename> | |
248 | requires a unit | |
249 | <filename>bar.service</filename> as | |
250 | configured with | |
251 | <varname>Requires=</varname> and no | |
252 | ordering is configured with | |
253 | <varname>After=</varname> or | |
254 | <varname>Before=</varname>, then both | |
255 | units will be started simultaneously | |
256 | and without any delay between them if | |
257 | <filename>foo.service</filename> is | |
258 | activated. Often it is a better choice | |
259 | to use <varname>Wants=</varname> | |
260 | instead of | |
261 | <varname>Requires=</varname> in order | |
262 | to achieve a system that is more | |
263 | robust when dealing with failing | |
264 | services.</para></listitem> | |
d1ab0ca0 | 265 | </varlistentry> |
11e29955 LP |
266 | |
267 | ||
268 | <varlistentry> | |
269 | <term><varname>RequiresOverridable=</varname></term> | |
270 | ||
271 | <listitem><para>Similar to | |
272 | <varname>Requires=</varname>. | |
273 | Dependencies listed in | |
274 | <varname>RequiresOverridable=</varname> | |
275 | which cannot be fulfilled or fail to | |
58c16a1a | 276 | start are ignored if the startup was |
11e29955 LP |
277 | explicitly requested by the user. If |
278 | the start-up was pulled in indirectly | |
279 | by some dependency or automatic | |
280 | start-up of units that is not | |
281 | requested by the user this dependency | |
282 | must be fulfilled and otherwise the | |
283 | transaction fails. Hence, this option | |
284 | may be used to configure dependencies | |
4176e530 | 285 | that are normally honored unless the |
11e29955 LP |
286 | user explicitly starts up the unit, in |
287 | which case whether they failed or not | |
288 | is irrelevant.</para></listitem> | |
289 | ||
290 | </varlistentry> | |
291 | <varlistentry> | |
292 | <term><varname>Requisite=</varname></term> | |
293 | <term><varname>RequisiteOverridable=</varname></term> | |
294 | ||
295 | <listitem><para>Similar to | |
296 | <varname>Requires=</varname> | |
297 | resp. <varname>RequiresOverridable=</varname>. However, | |
298 | if a unit listed here is not started | |
299 | already it will not be started and the | |
300 | transaction fails | |
301 | immediately.</para></listitem> | |
302 | </varlistentry> | |
303 | ||
304 | <varlistentry> | |
305 | <term><varname>Wants=</varname></term> | |
306 | ||
307 | <listitem><para>A weaker version of | |
308 | <varname>Requires=</varname>. A unit | |
309 | listed in this option will be started | |
310 | if the configuring unit is. However, | |
58c16a1a | 311 | if the listed unit fails to start up |
11e29955 LP |
312 | or cannot be added to the transaction |
313 | this has no impact on the validity of | |
314 | the transaction as a whole. This is | |
315 | the recommended way to hook start-up | |
316 | of one unit to the start-up of another | |
317 | unit. Note that dependencies of this | |
318 | type may also be configured outside of | |
319 | the unit configuration file by | |
320 | adding a symlink to a | |
321 | <filename>.wants/</filename> directory | |
322 | accompanying the unit file. For | |
323 | details see above.</para></listitem> | |
324 | </varlistentry> | |
325 | ||
326 | <varlistentry> | |
327 | <term><varname>Conflicts=</varname></term> | |
328 | ||
329 | <listitem><para>Configures negative | |
330 | requirement dependencies. If a unit | |
58c16a1a | 331 | has a |
11e29955 | 332 | <varname>Conflicts=</varname> setting |
58c16a1a | 333 | on another unit, starting the former |
11e29955 LP |
334 | will stop the latter and vice |
335 | versa. Note that this setting is | |
336 | independent of and orthogonal to the | |
337 | <varname>After=</varname> and | |
338 | <varname>Before=</varname> ordering | |
69dd2852 LP |
339 | dependencies.</para> |
340 | ||
341 | <para>If a unit A that conflicts with | |
342 | a unit B is scheduled to be started at | |
343 | the same time as B, the transaction | |
344 | will either fail (in case both are | |
345 | required part of the transaction) or | |
346 | be modified to be fixed (in case one | |
347 | or both jobs are not a required part | |
348 | of the transaction). In the latter | |
349 | case the job that is not the required | |
350 | will be removed, or in case both are | |
351 | not required the unit that conflicts | |
352 | will be started and the unit that is | |
353 | conflicted is | |
354 | stopped.</para></listitem> | |
11e29955 LP |
355 | </varlistentry> |
356 | ||
357 | <varlistentry> | |
358 | <term><varname>Before=</varname></term> | |
359 | <term><varname>After=</varname></term> | |
360 | ||
361 | <listitem><para>Configures ordering | |
362 | dependencies between units. If a unit | |
363 | <filename>foo.service</filename> | |
364 | contains a setting | |
365 | <option>Before=bar.service</option> | |
58c16a1a | 366 | and both units are being started, |
11e29955 LP |
367 | <filename>bar.service</filename>'s |
368 | start-up is delayed until | |
369 | <filename>foo.service</filename> is | |
370 | started up. Note that this setting is | |
371 | independent of and orthogonal to the | |
372 | requirement dependencies as configured | |
373 | by <varname>Requires=</varname>. It is | |
374 | a common pattern to include a unit | |
375 | name in both the | |
376 | <varname>After=</varname> and | |
377 | <varname>Requires=</varname> option in | |
378 | which case the unit listed will be | |
379 | started before the unit that is | |
380 | configured with these options. This | |
381 | option may be specified more than | |
382 | once, in which case ordering | |
383 | dependencies for all listed names are | |
384 | created. <varname>After=</varname> is | |
385 | the inverse of | |
386 | <varname>Before=</varname>, i.e. while | |
387 | <varname>After=</varname> ensures that | |
388 | the configured unit is started after | |
389 | the listed unit finished starting up, | |
390 | <varname>Before=</varname> ensures the | |
391 | opposite, i.e. that the configured | |
392 | unit is fully started up before the | |
393 | listed unit is started. Note that when | |
394 | two units with an ordering dependency | |
395 | between them are shut down, the | |
58c16a1a | 396 | inverse of the start-up order is |
11e29955 LP |
397 | applied. i.e. if a unit is configured |
398 | with <varname>After=</varname> on | |
399 | another unit, the former is stopped | |
400 | before the latter if both are shut | |
401 | down. If one unit with an ordering | |
402 | dependency on another unit is shut | |
403 | down while the latter is started up, | |
404 | the shut down is ordered before the | |
405 | start-up regardless whether the | |
406 | ordering dependency is actually of | |
407 | type <varname>After=</varname> or | |
408 | <varname>Before=</varname>. If two | |
409 | units have no ordering dependencies | |
410 | between them they are shut down | |
411 | resp. started up simultaneously, and | |
412 | no ordering takes | |
413 | place. </para></listitem> | |
414 | </varlistentry> | |
415 | ||
b9975629 LP |
416 | <varlistentry> |
417 | <term><varname>OnFailure=</varname></term> | |
418 | ||
419 | <listitem><para>Lists one or more | |
420 | units that are activated when this | |
421 | unit fails (i.e. enters maintenance | |
422 | state).</para></listitem> | |
423 | </varlistentry> | |
424 | ||
11e29955 LP |
425 | <varlistentry> |
426 | <term><varname>RecursiveStop=</varname></term> | |
427 | ||
428 | <listitem><para>Takes a boolean | |
429 | argument. If <option>true</option> and | |
58c16a1a OÇ |
430 | the unit stops without being requested |
431 | by the user, all units | |
11e29955 LP |
432 | depending on it will be stopped as |
433 | well. (e.g. if a service exits or | |
434 | crashes on its own behalf, units using | |
435 | it will be stopped) Note that normally | |
58c16a1a | 436 | if a unit stops without a user request, |
11e29955 LP |
437 | units depending on it will not be |
438 | terminated. Only if the user requested | |
58c16a1a OÇ |
439 | shutdown of a unit, all units depending |
440 | on that unit will be shut down as well | |
11e29955 LP |
441 | and at the same time. Defaults to |
442 | <option>false</option>.</para></listitem> | |
443 | </varlistentry> | |
444 | ||
445 | <varlistentry> | |
446 | <term><varname>StopWhenUnneeded=</varname></term> | |
447 | ||
448 | <listitem><para>Takes a boolean | |
449 | argument. If <option>true</option> | |
450 | this unit will be stopped when it is | |
451 | no longer used. Note that in order to | |
58c16a1a OÇ |
452 | minimize the work to be executed, |
453 | systemd will not stop units by default | |
11e29955 LP |
454 | unless they are conflicting with other |
455 | units, or the user explicitly | |
456 | requested their shut down. If this | |
58c16a1a | 457 | option is set, a unit will be |
11e29955 LP |
458 | automatically cleaned up if no other |
459 | active unit requires it. Defaults to | |
460 | <option>false</option>.</para></listitem> | |
461 | </varlistentry> | |
462 | ||
463 | <varlistentry> | |
464 | <term><varname>OnlyByDependency=</varname></term> | |
465 | ||
466 | <listitem><para>Takes a boolean | |
467 | argument. If <option>true</option> | |
58c16a1a | 468 | this unit can only be activated |
11e29955 LP |
469 | indirectly. In this case explicit |
470 | start-up requested by the user is | |
58c16a1a OÇ |
471 | denied, however if it is started as a |
472 | dependency of another unit, start-up | |
11e29955 LP |
473 | will succeed. This is mostly a safety |
474 | feature to ensure that the user does | |
4176e530 | 475 | not accidentally activate units that are |
11e29955 LP |
476 | not intended to be activated |
477 | explicitly. This option defaults to | |
478 | <option>false</option>.</para></listitem> | |
479 | </varlistentry> | |
480 | ||
62adf224 LP |
481 | <varlistentry> |
482 | <term><varname>DefaultDependencies=</varname></term> | |
483 | ||
484 | <listitem><para>Takes a boolean | |
485 | argument. If <option>true</option> | |
486 | (the default), a few default | |
487 | dependencies will implicitly be | |
488 | created for the unit. The actual | |
489 | dependencies created depend on the | |
490 | unit type. For example, for service | |
491 | units, these dependencies ensure that | |
492 | the service is started only after | |
493 | basic system initialization is | |
58c16a1a | 494 | completed and is properly terminated on |
62adf224 LP |
495 | system shutdown. See the respective |
496 | man pages for details. Generally, only | |
497 | services involved with early boot or | |
498 | late shutdown should set this option | |
499 | to <option>false</option>. It is | |
500 | highly recommended to leave this | |
501 | option enabled for the majority of | |
502 | common units. If set to | |
503 | <option>false</option> this option | |
504 | does not disable all implicit | |
505 | dependencies, just non-essential | |
506 | ones.</para></listitem> | |
507 | </varlistentry> | |
508 | ||
3b6fdb5b LP |
509 | <varlistentry> |
510 | <term><varname>IgnoreDependencyFailure=</varname></term> | |
511 | ||
512 | <listitem><para>Takes a boolean | |
513 | argument. If <option>true</option> and | |
514 | a requirement dependency of this unit | |
515 | fails to start up this unit will be | |
516 | started nonetheless, ignoring that | |
517 | failure. If <option>false</option> | |
518 | (the default) and a dependency unit | |
519 | fails the unit will immediately fail | |
520 | too and the job is removed.</para></listitem> | |
521 | </varlistentry> | |
b9975629 LP |
522 | |
523 | <varlistentry> | |
524 | <term><varname>JobTimeoutSec=</varname></term> | |
525 | ||
526 | <listitem><para>When clients are | |
527 | waiting for a job of this unit to | |
528 | complete, time out after the specified | |
529 | time. If this time limit is reached | |
530 | the job will be cancelled, the unit | |
531 | however will not change state or even | |
532 | enter maintenance mode. This value | |
533 | defaults to 0 (job timeouts disabled), | |
534 | except for device units. NB: this | |
535 | timeout is independent from any | |
536 | unit-specific timeout (for example, | |
537 | the timeout set with | |
538 | <varname>Timeout=</varname> in service | |
539 | units) as the job timeout has no effect | |
540 | on the unit itself, only on the job | |
541 | that might be pending for it. Or in | |
542 | other words: unit-specific timeouts | |
543 | are useful to abort unit state | |
544 | changes, and revert them. The job | |
545 | timeout set with this option however | |
546 | is useful to abort only the job waiting | |
547 | for the unit state to change.</para></listitem> | |
548 | </varlistentry> | |
549 | ||
d1ab0ca0 | 550 | </variablelist> |
771610b0 LP |
551 | |
552 | <para>Unit file may include a [Install] section, which | |
553 | carries installation information for the unit. This | |
554 | section is not interpreted by | |
555 | <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> | |
556 | during runtime. It is used exclusively by the | |
ee5762e3 LP |
557 | <command>enable</command> and |
558 | <command>disable</command> commands of the | |
559 | <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> | |
11e29955 | 560 | tool during installation of a unit:</para> |
771610b0 LP |
561 | |
562 | <variablelist> | |
563 | <varlistentry> | |
564 | <term><varname>Alias=</varname></term> | |
565 | ||
0a715d97 | 566 | <listitem><para>Additional names this |
771610b0 LP |
567 | unit shall be installed under. The |
568 | names listed here must have the same | |
569 | suffix (i.e. type) as the unit file | |
570 | name. This option may be specified | |
571 | more than once, in which case all | |
572 | listed names are used. At installation | |
af62c704 | 573 | time, |
ee5762e3 | 574 | <command>systemctl enable</command> |
771610b0 LP |
575 | will create symlinks from these names |
576 | to the unit file name. Note that this | |
577 | is different from the | |
578 | <varname>Names=</varname> option from | |
579 | the [Unit] section mentioned above: | |
580 | The names from | |
581 | <varname>Names=</varname> apply | |
582 | unconditionally if the unit is | |
583 | loaded. The names from | |
584 | <varname>Alias=</varname> apply only | |
11e29955 LP |
585 | if the unit has actually been |
586 | installed with the | |
ee5762e3 LP |
587 | <command>systemctl enable</command> |
588 | command. Also, if systemd searches for a | |
771610b0 | 589 | unit, it will discover symlinked alias |
11e29955 LP |
590 | names as configured with |
591 | <varname>Alias=</varname>, but not | |
592 | names configured with | |
593 | <varname>Names=</varname> only. It is | |
594 | a common pattern to list a name in | |
595 | both options. In this case, a unit | |
596 | will be active under all names if | |
597 | installed, but also if not installed | |
598 | but requested explicitly under its | |
599 | main name.</para></listitem> | |
600 | </varlistentry> | |
601 | ||
602 | <varlistentry> | |
603 | <term><varname>WantedBy=</varname></term> | |
604 | ||
605 | <listitem><para>Installs a symlink in | |
606 | the <filename>.wants/</filename> | |
607 | subdirectory for a unit. This has the | |
608 | effect that when the listed unit name | |
609 | is activated the unit listing it is | |
610 | activated | |
6cbdbc5f | 611 | too. <command>WantedBy=foo.service</command> |
11e29955 LP |
612 | in a service |
613 | <filename>bar.service</filename> is | |
614 | mostly equivalent to | |
615 | <command>Alias=foo.service.wants/bar.service</command> | |
616 | in the same file.</para></listitem> | |
617 | </varlistentry> | |
618 | ||
619 | <varlistentry> | |
620 | <term><varname>Also=</varname></term> | |
621 | ||
622 | <listitem><para>Additional units to | |
623 | install when this unit is | |
624 | installed. If the user requests | |
625 | installation of a unit with this | |
58c16a1a | 626 | option configured, |
ee5762e3 | 627 | <command>systemctl enable</command> |
11e29955 LP |
628 | will automatically install units |
629 | listed in this option as | |
630 | well.</para></listitem> | |
771610b0 LP |
631 | </varlistentry> |
632 | </variablelist> | |
633 | ||
d1ab0ca0 LP |
634 | </refsect1> |
635 | ||
636 | <refsect1> | |
160cd5c9 LP |
637 | <title>See Also</title> |
638 | <para> | |
639 | <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, | |
771610b0 | 640 | <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
771610b0 LP |
641 | <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>, |
642 | <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
643 | <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
644 | <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
645 | <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
646 | <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
647 | <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
648 | <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
649 | <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
5f2ee303 LP |
650 | <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
651 | <citerefentry><refentrytitle>systemd.snapshot</refentrytitle><manvolnum>5</manvolnum></citerefentry> | |
160cd5c9 | 652 | </para> |
d1ab0ca0 LP |
653 | </refsect1> |
654 | ||
655 | </refentry> |