X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsystemd.unit.xml;h=d447c3a0a52dd471c8637a4aef5e3f95aefe1dac;hp=3bc5d3c66f6f8453712ffdbcc481cb1ca8467463;hb=28cf382a0afd10d0e2a71d152f0df4909e90d159;hpb=74ac3cbd509de2f5995542aa5db39328e8cbd22a diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index 3bc5d3c66..d447c3a0a 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -139,7 +139,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 @@ -182,13 +185,30 @@ %i specifier in many of the configuration options. Other specifiers that may be used are %n, %N, - %p, %P and - %I, for the full unit name, the - unescaped unit name, the prefix name, the unescaped - prefix name and the unescaped instance name, - respectively. The prefix name here refers to the - string before the @, i.e. "getty" in the example - above, where "tty3" is the instance name. + %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. + + If a unit file is empty (i.e. has the file size + 0) or is symlinked to /dev/null + its configuration will not be loaded and it appears + with a load state of masked, and + cannot be activated. Use this as an effective way to + fully disable a unit, making it impossible to start it + even manually. + + The unit file format is covered by the + Interface + Stability Promise. @@ -199,21 +219,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= @@ -264,7 +269,6 @@ services. - RequiresOverridable= @@ -323,6 +327,23 @@ details see above. + + BindTo= + + Configures requirement + dependencies, very similar in style to + Requires=, however + in addition to this behaviour it also + declares that this unit is stopped + when any of the units listed suddenly + disappears. Units can suddenly, + unexpectedly disappear if a service + terminates on its own choice, a device + is unplugged or a mount point + unmounted without involvement of + systemd. + + Conflicts= @@ -423,26 +444,6 @@ state. - - RecursiveStop= - - Takes a boolean - argument. If and - the unit stops without being requested - by the user, all units - depending on it will be stopped as - well. (e.g. if a service exits or - crashes on its own behalf, units using - it will be stopped) Note that normally - if a unit stops without a user request, - units depending on it will not be - terminated. Only if the user requested - shutdown of a unit, all units depending - on that unit will be shut down as well - and at the same time. Defaults to - . - - StopWhenUnneeded= @@ -530,20 +531,6 @@ ones. - - IgnoreDependencyFailure= - - Takes a boolean - argument. If and - a requirement dependency of this unit - fails to start up this unit will be - started nonetheless, ignoring that - failure. If - (the default) and a dependency unit - fails the unit will immediately fail - too and the job is removed. - - JobTimeoutSec= @@ -572,6 +559,122 @@ change. + + ConditionPathExists= + ConditionDirectoryNotEmpty= + ConditionKernelCommandLine= + ConditionVirtualization= + ConditionNull= + + Before starting a unit + verify that the specified condition is + true. With + ConditionPathExists= + a file existance condition can be + checked before a unit is started. If + the specified absolute path name does + 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 + the time the queued start job is to be + executed. If the absolute path name + passed to + ConditionPathExists= + is prefixed with an exclamation mark + (!), the test is negated, and the unit + only started if the path does not + exist. ConditionDirectoryNotEmpty= + is similar to + ConditionPathExists= + but verifies whether a certain path is + exists and is a non-empty + directory. Similarly + ConditionKernelCommandLine= + may be used to check whether a + specific kernel command line option is + set (or if prefixed with the + exclamation mark unset). The argument + must either be a single word, or an + 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, + or as left hand side of an + assignment. In the latter case the + exact assignment is looked for with + right and left hand side + 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 virtual environment or one of the + qemu, + kvm, + vmware, + microsoft, + oracle, + xen, + pidns, + openvz to test + against a specific implementation. The + test may be negated by prepending an + exclamation mark. Finally, + ConditionNull= may + be used to add a constant condition + check value to the unit. It takes a + boolean argument. If set to + false the condition + will always fail, otherwise + succeed. If multiple conditions are + 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. + + + + 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. + + Unit file may include a [Install] section, which