X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsystemd.unit.xml;h=bf0deb1f97cd64d983a67daf1f9e0f25b58e4281;hp=2b59b1b841c64b3c2c5d9d870c68ef12b5ea73e8;hb=e45fc5e738b0b7700e8b4f3c4b25c58a49b44b27;hpb=099524d7b0df690e3361ffc3fe3c6aed0558b4fc diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index 2b59b1b84..bf0deb1f9 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,16 @@ 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. + 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. - 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. + Note that while systemd offers a flexible dependency system between units it is recommended to @@ -220,12 +229,17 @@ the file system namespace. If this applies, a special way to escape the path name is used, so that the 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 - encoded as single dash, while otherwise the initial - and ending "/" is removed from all paths during - transformation. This escaping is reversible. + given a path, "/" is replaced by "-" and all other + characters which are not ASCII alphanumerics are + replaced by C-style "\x2d" escapes (except that "_" + is never replaced and "." is only replaced when it + would be the first character in the escaped path). + The root directory "/" is encoded as single dash, + while otherwise the initial and ending "/" are removed + from all paths during transformation. This escaping + is reversible. Properly escaped paths can be generated + using the systemd-escape1 + command. Optionally, units may be instantiated from a template file at runtime. This allows creation of @@ -276,8 +290,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 +341,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 +388,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 +427,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 +738,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). + @@ -852,20 +897,22 @@ JobTimeoutSec= - - When clients are - waiting for a job of this unit to - complete, time out after the specified - time. If this time limit is reached, - the job will be cancelled, the unit - however will not change state or even - enter the failed - mode. This value defaults to 0 (job - timeouts disabled), except for device + JobTimeoutAction= + JobTimeoutRebootArgument= + + When a job for this + unit is queued a time-out may be + configured. If this time limit is + reached, the job will be cancelled, + the unit however will not change state + or even enter the + failed mode. This + value defaults to 0 (job timeouts + disabled), except for device units. NB: this timeout is independent from any unit-specific timeout (for example, the timeout set with - Timeout= in service + StartTimeoutSec= in service units) as the job timeout has no effect on the unit itself, only on the job that might be pending for it. Or @@ -875,7 +922,22 @@ timeout set with this option however is useful to abort only the job waiting for the unit state to - change. + change. + + JobTimeoutAction= + optionally configures an additional + action to take when the time-out is + hit. It takes the same values as the + per-service + StartLimitAction= + setting, see + systemd.service5 + for details. Defaults to + . JobTimeoutRebootArgument= + configures an optional reboot string + to pass to the + reboot2 + system call. @@ -886,6 +948,8 @@ ConditionSecurity= ConditionCapability= ConditionACPower= + ConditionNeedsUpdate= + ConditionFirstBoot= ConditionPathExists= ConditionPathExistsGlob= ConditionPathIsDirectory= @@ -895,7 +959,11 @@ ConditionDirectoryNotEmpty= ConditionFileNotEmpty= ConditionFileIsExecutable= - ConditionNull= + + Before starting a unit verify that the specified condition is @@ -916,7 +984,9 @@ x86, x86-64, ppc, + ppc-le, ppc64, + ppc64-le, ia64, parisc, parisc64, @@ -925,7 +995,9 @@ sparc, sparc64, mips, + mips-le, mips64, + mips64-le, alpha, arm, arm-be, @@ -933,7 +1005,9 @@ arm64-be, sh, sh64, - m86k to test + m86k, + tilegx, + cris to test against a specific architecture. The architecture is determined from the information returned by @@ -964,23 +1038,27 @@ virtualization solution, or one of qemu, kvm, + zvm, 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. + 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 @@ -1007,7 +1085,7 @@ 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 + assignment. In the latter case, the exact assignment is looked for with right and left hand side matching. @@ -1015,14 +1093,15 @@ ConditionSecurity= may be used to check whether the given security module is enabled on the - system. Currently the recognized values - values are selinux, + system. Currently the recognized + values values are + selinux, apparmor, - ima and - smack. - The test may be negated by prepending - an exclamation - mark. + ima, + smack and + audit. The test may + be negated by prepending an + exclamation mark.ConditionCapability= may be used to check whether the given @@ -1031,7 +1110,7 @@ (i.e. this does not check whether capability is actually available in the permitted or effective sets, see - capabilities7 + capabilities7 for details). Pass a capability name such as CAP_MKNOD, possibly prefixed with an exclamation @@ -1054,6 +1133,45 @@ 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 @@ -1125,15 +1243,6 @@ exists, is a regular file and marked executable. - 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 @@ -1159,6 +1268,38 @@ have no effect. + + AssertArchitecture= + AssertVirtualization= + AssertHost= + AssertKernelCommandLine= + AssertSecurity= + AssertCapability= + AssertACPower= + AssertNeedsUpdate= + AssertFirstBoot= + AssertPathExists= + AssertPathExistsGlob= + AssertPathIsDirectory= + AssertPathIsSymbolicLink= + AssertPathIsMountPoint= + AssertPathIsReadWrite= + AssertDirectoryNotEmpty= + AssertFileNotEmpty= + AssertFileIsExecutable= + + Similar to the + ConditionArchitecture=, + ConditionVirtualization=, + ... condition settings described above + these settings add assertion checks to + the start-up of the unit. However, + unlike the conditions settings any + assertion setting that is not met + results in failure of the start + job it was triggered by. + + SourcePath= A path to a @@ -1167,15 +1308,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 @@ -1187,7 +1334,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) @@ -1267,6 +1414,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 @@ -1401,13 +1561,23 @@
+ + Please note that specifiers + %U, %h, + %s are mostly useless when systemd + is running in system mode. PID 1 cannot query the + user account database for information, so the + specifiers only work as shortcuts for things which are + already specified in a different way in the unit + file. They are fully functional when systemd is + running in mode. See Also systemd1, - systemctl8, + systemctl1, systemd.special7, systemd.service5, systemd.socket5, @@ -1422,7 +1592,8 @@ systemd.scope5, systemd.slice5, systemd.time7, - capabilities7, + systemd-analyze1, + capabilities7, systemd.directives7, uname1