X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsystemd.unit.xml;h=3cc126b12aefa94e455b2e33431fcf3cd13a7c9a;hp=b29473afa3bb9862e24093398fc99741836eafb7;hb=fb0864e7b9c6d26269ccea6ec5c0fd921c029781;hpb=36af55d99711e9accdf42d8a7df60e069f4086c0 diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index b29473afa..3cc126b12 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -121,8 +121,9 @@ If a line starts with followed by a file name, the specified file will be - read as if its contents were listed in place of the - directive. + parsed at this point. Make sure that the file that is + included has the appropiate section headers before + any directives. Along with a unit file foo.service a directory @@ -139,7 +140,10 @@ with the enable command of the systemctl1 tool which reads information from the [Install] - section of unit files. (See below.) + section of unit files. (See below.) A similar + functionality exists for Requires= + type dependencies as well, the directory suffix is + .requires/ in this case. Note that while systemd offers a flexible dependency system between units it is recommended to @@ -177,22 +181,86 @@ and no file by that name is found, systemd will look for getty@.service and instantiate a service from that configuration file if - it is found. To refer to the instance string from + it is found. + + To refer to the instance string from within the configuration file you may use the special %i specifier in many of the - configuration options. Other specifiers that may be - used are %n, %N, - %p, %P, - %I and %f, for - the full unit name, the unescaped unit name, the - prefix name, the unescaped prefix name, the unescaped - instance name and the unescaped filename, - respectively. The unescaped filename is either the - unescaped instance name (if set) with / prepended (if - necessary), or the prefix name similarly prepended - with /. The prefix name here refers to the string - before the @, i.e. "getty" in the example above, where - "tty3" is the instance name. + configuration options. Other specifiers exist, the + full list is: + + + Specifiers available in unit files + + + + + + + Specifier + Meaning + Details + + + + + %n + Full unit name + + + + %N + Unescaped full unit name + + + + %p + Prefix name + This refers to the string before the @, i.e. "getty" in the example above, where "tty3" is the instance name. + + + %P + Unescaped prefix name + + + + %i + Instance name + This is the string between the @ character and the suffix. + + + %I + Unescaped instance name + + + + %f + Unescaped file name + This is either the unescaped instance name (if set) with / prepended (if necessary), or the prefix name similarly prepended with /. + + + %c + Control group path of the unit + + + + %r + Root control group path of systemd + + + + %R + Parent directory of the root control group path of systemd + + + + %t + Runtime socket dir + This is either /run (for the system manager) or $XDG_RUNTIME_DIR (for user managers). + + + +
If a unit file is empty (i.e. has the file size 0) or is symlinked to /dev/null @@ -216,21 +284,6 @@ dependent on the type of unit: - - Names= - - Additional names for - this unit. The names listed here must - have the same suffix (i.e. type) as - the unit file name. This option may be - specified more than once, in which - case all listed names are used. Note - that this option is different from the - Alias= option from - the [Install] section mentioned - below. See below for details. - - Description= @@ -352,7 +405,7 @@ unexpectedly disappear if a service terminates on its own choice, a device is unplugged or a mount point - unmounted with involvement of + unmounted without involvement of systemd. @@ -456,6 +509,60 @@ state. + + PropagateReloadTo= + PropagateReloadFrom= + + Lists one or more + units where reload requests on the + unit will be propagated to/on the + other unit will be propagated + from. Issuing a reload request on a + unit will automatically also enqueue a + reload request on all units that the + reload request shall be propagated to + via these two + settings. + + + + OnFailureIsolate= + + Takes a boolean + argument. If the + unit listed in + OnFailure= will be + enqueued in isolation mode, i.e. all + units that are not its dependency will + be stopped. If this is set only a + single unit may be listed in + OnFailure=. Defaults + to + . + + + + IgnoreOnIsolate= + + Takes a boolean + argument. If + this unit will not be stopped when + isolating another unit. Defaults to + . + + + + IgnoreOnSnapshot= + + Takes a boolean + argument. If + this unit will not be included in + snapshots. Defaults to + for device and + snapshot units, + for the others. + + StopWhenUnneeded= @@ -573,18 +680,26 @@ ConditionPathExists= + ConditionPathExistsGlob= + ConditionPathIsDirectory= + ConditionPathIsSymbolicLink= + ConditionPathIsMountPoint= ConditionDirectoryNotEmpty= + ConditionFileIsExecutable= ConditionKernelCommandLine= + ConditionVirtualization= + ConditionSecurity= + ConditionCapability= ConditionNull= Before starting a unit verify that the specified condition is true. With ConditionPathExists= - a file existance condition can be + a file existence condition can be checked before a unit is started. If the specified absolute path name does - not exist startup of a unit will not + not exist, startup of a unit will not actually happen, however the unit is still useful for ordering purposes in this case. The condition is checked at @@ -594,11 +709,38 @@ ConditionPathExists= is prefixed with an exclamation mark (!), the test is negated, and the unit - only started if the path does not - exist. ConditionDirectoryNotEmpty= + is only started if the path does not + exist. + ConditionPathExistsGlob= + works in a similar way, but checks for + the existence of at least one file or + directory matching the specified + globbing + pattern. ConditionPathIsDirectory= + is similar to + ConditionPathExists= + but verifies whether a certain path + exists and is a + directory. ConditionPathIsSymbolicLink= + is similar to + ConditionPathExists= + but verifies whether a certain path + exists and is a symbolic + link. ConditionPathIsMountPoint= + is similar to + ConditionPathExists= + but verifies whether a certain path + exists and is a mount + point. ConditionFileIsExecutable= + is similar to + ConditionPathExists= + but verifies whether a certain path + exists, is a regular file and marked + executable. + ConditionDirectoryNotEmpty= is similar to ConditionPathExists= - but verifies whether a cetrain path is + but verifies whether a certain path exists and is a non-empty directory. Similarly ConditionKernelCommandLine= @@ -607,7 +749,7 @@ set (or if prefixed with the exclamation mark unset). The argument must either be a single word, or an - assignment (i.e. two words, seperated + assignment (i.e. two words, separated by the equality sign). In the former case the kernel command line is searched for the word appearing as is, @@ -615,7 +757,54 @@ assignment. In the latter case the exact assignment is looked for with right and left hand side - matching. Finally, + matching. ConditionVirtualization= + may be used to check whether the + system is executed in a virtualized + environment and optionally test + whether it is a specific + implementation. Takes either boolean + value to check if being executed in + any virtualized environment, or one of + vm and + container to test + against a specific type of + virtualization solution, or one of + qemu, + kvm, + vmware, + microsoft, + oracle, + xen, + bochs, + chroot, + openvz, + lxc, + lxc-libvirt, + systemd-nspawn to test + against a specific implementation. If + multiple virtualization technologies + are nested only the innermost is + considered. The test may be negated by + prepending an exclamation mark. + ConditionSecurity= + may be used to check whether the given + security module is enabled on the + system. Currently the only recognized + value is selinux. + The test may be negated by prepending + an exclamation + mark. ConditionCapability= + may be used to check whether the given + capability exists in the capability + bounding set of the service manager + (i.e. this does not check whether + capability is actually available in + the permitted or effective sets, see + capabilities7 + for details). Pass a capability name + such as CAP_MKNOD, + possibly prefixed with an exclamation + mark to negate the check. Finally, ConditionNull= may be used to add a constant condition check value to the unit. It takes a @@ -623,10 +812,53 @@ false the condition will always fail, otherwise succeed. If multiple conditions are - specified the unit will be executed - iff at least one of them applies - (i.e. a logical OR is - applied). + specified the unit will be executed if + all of them apply (i.e. a logical AND + is applied). Condition checks can be + prefixed with a pipe symbol (|) in + which case a condition becomes a + triggering condition. If at least one + triggering condition is defined for a + unit then the unit will be executed if + at least one of the triggering + conditions apply and all of the + non-triggering conditions. If you + prefix an argument with the pipe + symbol and an exclamation mark the + pipe symbol must be passed first, the + exclamation second. Except for + ConditionPathIsSymbolicLink=, + all path checks follow + symlinks. + + + + Names= + + Additional names for + this unit. The names listed here must + have the same suffix (i.e. type) as + the unit file name. This option may be + specified more than once, in which + case all listed names are used. Note + that this option is different from the + Alias= option from + the [Install] section mentioned + below. See below for details. Note + that in almost all cases this option + is not what you want. A symlink alias + in the file system is generally + preferable since it can be used as + lookup key. If a unit with a symlinked + alias name is not loaded and needs to + be it is easily found via the + symlink. However, if a unit with an + alias name configured with this + setting is not loaded it will not be + discovered. This settings' only use is + in conjunction with service + instances. + @@ -729,7 +961,8 @@ systemd.target5, systemd.path5, systemd.timer5, - systemd.snapshot5 + systemd.snapshot5, + capabilities7