X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsystemd.unit.xml;h=88c9d7f8e893e88ac83113c01c9217786f5b847f;hp=2a965f5a1ca57520aeabcd20a4f2bc61d95839fc;hb=820c095831a352e669be23e5471f11e15b6db344;hpb=72ebbf3450340338d71ea2039dfb296bc1d595db diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index 2a965f5a1..88c9d7f8e 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -70,9 +70,13 @@ ... - $HOME/.config/systemd/user/* + $XDG_CONFIG_HOME/systemd/user/* +$HOME/.config/systemd/user/* /etc/systemd/user/* +$XDG_RUNTIME_DIR/systemd/user/* /run/systemd/user/* +$XDG_DATA_HOME/systemd/user/* +$HOME/.local/share/systemd/user/* /usr/lib/systemd/user/* ... @@ -138,10 +142,12 @@ Unit files may contain additional options on top of those listed here. If systemd encounters an unknown option, it will write a warning log message but - continue loading the unit. If an option is prefixed - with , it is ignored completely by - systemd. Applications may use this to include - additional information in the unit files. + continue loading the unit. If an option or section name + is prefixed with , it is ignored + completely by systemd. Options within an ignored + section do not need the prefix. Applications may use + this to include additional information in the unit + files. Boolean arguments used in unit files can be written in various formats. For positive settings the @@ -175,10 +181,10 @@ foo.service.wants/ may exist. All unit files symlinked from such a directory are implicitly added as dependencies of type - Wanted= to the unit. This is useful + Wants= to the unit. This is useful to hook units into the start-up of other units, without having to modify their unit files. For details - about the semantics of Wanted=, see + about the semantics of Wants=, see below. The preferred way to create symlinks in the .wants/ directory of a unit file is with the enable command of the @@ -198,13 +204,12 @@ settings to a unit, without having to modify their unit files. Make sure that the file that is included has the appropriate section headers before any - directive. - - If a line starts with - followed by a filename, the specified file will be - parsed at this point. Make sure that the file that is - included has the appropriate section headers before - any directives. + directive. Note that for instanced units this logic + will first look for the instance + .d/ subdirectory and read its + .conf files, followed by the + template .d/ subdirectory and reads + its .conf files. Note that while systemd offers a flexible dependency system between units it is recommended to @@ -222,7 +227,7 @@ result is usable as part of a filename. Basically, given a path, "/" is replaced by "-", and all unprintable characters and the "-" are replaced by - C-style "\x20" escapes. The root directory "/" is + C-style "\x2d" escapes. The root directory "/" is encoded as single dash, while otherwise the initial and ending "/" is removed from all paths during transformation. This escaping is reversible. @@ -276,8 +281,10 @@ () and the variable $SYSTEMD_UNIT_PATH is set, this contents of this variable overrides the unit load - path. - + path. If $SYSTEMD_UNIT_PATH ends + with an empty component (:), the + usual unit load path will be appended to the contents + of the variable. @@ -325,21 +332,37 @@ </row> </thead> <tbody> + <row> + <entry><filename>$XDG_CONFIG_HOME/systemd/user</filename></entry> + <entry>User configuration (only used when $XDG_CONFIG_HOME is set)</entry> + </row> <row> <entry><filename>$HOME/.config/systemd/user</filename></entry> - <entry>User configuration</entry> + <entry>User configuration (only used when $XDG_CONFIG_HOME is not set)</entry> </row> <row> <entry><filename>/etc/systemd/user</filename></entry> <entry>Local configuration</entry> </row> + <row> + <entry><filename>$XDG_RUNTIME_DIR/systemd/user</filename></entry> + <entry>Runtime units (only used when $XDG_RUNTIME_DIR is set)</entry> + </row> <row> <entry><filename>/run/systemd/user</filename></entry> <entry>Runtime units</entry> </row> + <row> + <entry><filename>$XDG_DATA_HOME/systemd/user</filename></entry> + <entry>Units of packages that have been installed in the home directory (only used when $XDG_DATA_HOME is set)</entry> + </row> + <row> + <entry><filename>$HOME/.local/share/systemd/user</filename></entry> + <entry>Units of packages that have been installed in the home directory (only used when $XDG_DATA_HOME is not set)</entry> + </row> <row> <entry><filename>/usr/lib/systemd/user</filename></entry> - <entry>Units of installed packages</entry> + <entry>Units of packages that have been installed system-wide</entry> </row> </tbody> </tgroup> @@ -356,7 +379,7 @@ </refsect1> <refsect1> - <title>Options + [Unit] Section OptionsUnit file may include a [Unit] section, which carries generic information about the unit that is not @@ -395,7 +418,7 @@ man:. For more information about the syntax of these URIs, see - uri7. The + uri7. The URIs should be listed in order of relevance, starting with the most relevant. It is a good idea to first @@ -706,13 +729,26 @@ RequiresMountsFor= - Takes a space-separated - list of absolute paths. Automatically - adds dependencies of type - Requires= and - After= for all + Takes a + space-separated list of absolute + paths. Automatically adds dependencies + of type Requires= + and After= for all mount units required to access the - specified path. + specified path. + + Mount points marked with + are not + mounted automatically and will be + ignored for the purposes of this + option. If such a mount should be a + requirement for this unit, + direct dependencies on the mount + units may be added + (Requires= and + After= or + some other combination). + @@ -879,6 +915,15 @@ + ConditionArchitecture= + ConditionVirtualization= + ConditionHost= + ConditionKernelCommandLine= + ConditionSecurity= + ConditionCapability= + ConditionACPower= + ConditionNeedsUpdate= + ConditionFirstBoot= ConditionPathExists= ConditionPathExistsGlob= ConditionPathIsDirectory= @@ -888,12 +933,6 @@ ConditionDirectoryNotEmpty= ConditionFileNotEmpty= ConditionFileIsExecutable= - ConditionKernelCommandLine= - ConditionVirtualization= - ConditionSecurity= - ConditionCapability= - ConditionHost= - ConditionACPower= ConditionNull= Before starting a unit @@ -908,6 +947,200 @@ queued start job is to be executed. + ConditionArchitecture= + may be used to check whether the + system is running on a specific + architecture. Takes one of + x86, + x86-64, + ppc, + ppc-le, + ppc64, + ppc64-le, + ia64, + parisc, + parisc64, + s390, + s390x, + sparc, + sparc64, + mips, + mips-le, + mips64, + mips64-le, + alpha, + arm, + arm-be, + arm64, + arm64-be, + sh, + sh64, + m86k, + tilegx, + cris to test + against a specific architecture. The + architecture is determined from the + information returned by + uname2 + and is thus subject to + personality2. Note + that a Personality= + setting in the same unit file has no + effect on this condition. A special + architecture name + native is mapped to + the architecture the system manager + itself is compiled for. The test may + be negated by prepending an + exclamation mark. + + 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 generic type of + virtualization solution, or one of + qemu, + kvm, + zvm, + vmware, + microsoft, + oracle, + xen, + bochs, + uml, + openvz, + lxc, + lxc-libvirt, + systemd-nspawn, + docker to test + against a specific implementation. See + systemd-detect-virt1 + for a full list of known + virtualization technologies and their + identifiers. If multiple + virtualization technologies are + nested, only the innermost is + considered. The test may be negated by + prepending an exclamation mark. + + ConditionHost= + may be used to match against the + hostname or machine ID of the + host. This either takes a hostname + string (optionally with shell style + globs) which is tested against the + locally set hostname as returned by + gethostname2, + or a machine ID formatted as string + (see + machine-id5). + The test may be negated by prepending + an exclamation mark. + + 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 + =). 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. + + ConditionSecurity= + may be used to check whether the given + security module is enabled on the + system. Currently the recognized values + values are selinux, + apparmor, + ima and + smack. + 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. + + ConditionACPower= + may be used to check whether the + system has AC power, or is exclusively + battery powered at the time of + activation of the unit. This takes a + boolean argument. If set to + true, the condition + will hold only if at least one AC + connector of the system is connected + to a power source, or if no AC + connectors are known. Conversely, if + set to false, the + condition will hold only if there is + at least one AC connector known and + all AC connectors are disconnected + from a power source. + + ConditionNeedsUpdate= + takes one of /var + or /etc as + argument, possibly prefixed with a + ! (for inverting + the condition). This condition may be + used to conditionalize units on + whether the specified directory + requires an update because + /usr's + modification time is newer than the + stamp file + .updated in the + specified directory. This is useful to + implement offline updates of the + vendor operating system resources in + /usr that require + updating of /etc + or /var on the + next following boot. Units making use + of this condition should order + themselves before + systemd-update-done.service8, + to make sure they run before the stamp + files's modification time gets reset + indicating a completed update. + + ConditionFirstBoot= + takes a boolean argument. This + condition may be used to + conditionalize units on whether the + system is booting up with an + unpopulated /etc + directory. This may be used to + populate /etc on + the first boot after factory reset, or + when a new system instances boots up + for the first time. + With ConditionPathExists= a file existence condition is @@ -979,111 +1212,6 @@ exists, is a regular file and marked executable. - 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 - =). 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 virtualized environment, or one of - vm and - container to test - against a generic type of - virtualization solution, or one of - qemu, - kvm, - vmware, - microsoft, - oracle, - xen, - bochs, - chroot, - uml, - 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 recognized values - values are selinux, - apparmor, - ima and - smack. - 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. - - ConditionHost= - may be used to match against the - hostname or machine ID of the - host. This either takes a hostname - string (optionally with shell style - globs) which is tested against the - locally set hostname as returned by - gethostname2, - or a machine ID formatted as string - (see - machine-id5). - The test may be negated by prepending - an exclamation mark. - - ConditionACPower= - may be used to check whether the - system has AC power, or is exclusively - battery powered at the time of - activation of the unit. This takes a - boolean argument. If set to - true, the condition - will hold only if at least one AC - connector of the system is connected - to a power source, or if no AC - connectors are known. Conversely, if - set to false, the - condition will hold only if there is - at least one AC connector known and - all AC connectors are disconnected - from a power source. - Finally, ConditionNull= may be used to add a constant condition @@ -1126,15 +1254,21 @@ useful for implementation of generator tools that convert configuration from an external configuration file format - into native unit files. Thus + into native unit files. This functionality should not be used in normal units. - Unit file may include a [Install] section, which - carries installation information for the unit. This - section is not interpreted by + + + + [Install] Section Options + + Unit file may include an + [Install] section, which carries + installation information for the unit. This section is + not interpreted by systemd1 during runtime. It is used exclusively by the enable and @@ -1146,7 +1280,7 @@ Alias= - A space-seperated list + A space-separated list of additional names this unit shall be installed under. The names listed here must have the same suffix (i.e. type) @@ -1226,6 +1360,19 @@ of unit names may be given. + + + DefaultInstance= + + In template unit files, + this specifies for which instance the + unit shall be enabled if the template + is enabled without any explicitly set + instance. This option has no effect in + non-template unit files. The specified + string must be usable as instance + identifier. + The following specifiers are interpreted in the @@ -1366,7 +1513,7 @@ See Also systemd1, - systemctl8, + systemctl1, systemd.special7, systemd.service5, systemd.socket5, @@ -1381,7 +1528,8 @@ systemd.scope5, systemd.slice5, systemd.time7, - capabilities7, + systemd-verify1, + capabilities7, systemd.directives7, uname1