X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=man%2Fsystemd.unit.xml;h=644758470611eafe914a3f6bbc220d903cb38c4e;hb=e1bbf3d12f28b8e3d4394f2b257e1b7aea3d10fc;hp=6a065d2d7a6e52c3cd5b1db3ccb5bb074e7e0813;hpb=2cfbd749af308bdbe56edcfed7f3eea0fc2b93d2;p=elogind.git diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index 6a065d2d7..644758470 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -70,9 +70,12 @@ ... - $HOME/.config/systemd/user/* + $XDG_CONFIG_HOME/systemd/user/* +$HOME/.config/systemd/user/* /etc/systemd/user/* /run/systemd/user/* +$XDG_DATA_HOME/systemd/user/* +$HOME/.local/share/systemd/user/* /usr/lib/systemd/user/* ... @@ -138,10 +141,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 @@ -200,12 +205,6 @@ 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. - Note that while systemd offers a flexible dependency system between units it is recommended to use this functionality only sparingly and instead rely @@ -232,7 +231,7 @@ multiple units from a single configuration file. If systemd looks for a unit configuration file, it will first search for the literal unit name in the - filesystem. If that yields no success and the unit + file system. If that yields no success and the unit name contains an @ character, systemd will look for a unit template that shares the same name but with the instance string (i.e. the part between the @ character @@ -325,9 +324,13 @@ + + $XDG_CONFIG_HOME/systemd/user + User configuration (only used when $XDG_CONFIG_HOME is set) + $HOME/.config/systemd/user - User configuration + User configuration (only used when $XDG_CONFIG_HOME is not set) /etc/systemd/user @@ -337,9 +340,17 @@ /run/systemd/user Runtime units + + $XDG_DATA_HOME/systemd/user + Units of packages that have been installed in the home directory (only used when $XDG_DATA_HOME is set) + + + $HOME/.local/share/systemd/user + Units of packages that have been installed in the home directory (only used when $XDG_DATA_HOME is not set) + /usr/lib/systemd/user - Units of installed packages + Units of packages that have been installed system-wide @@ -356,7 +367,7 @@ - Options + [Unit] Section Options Unit file may include a [Unit] section, which carries generic information about the unit that is not @@ -395,7 +406,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 @@ -403,7 +414,7 @@ what the unit's purpose is, followed by how it is configured, followed by any other related documentation. This - option may be specified more than once + option may be specified more than once, in which case the specified list of URIs is merged. If the empty string is assigned to this option, the list is @@ -492,7 +503,7 @@ Requires= and RequiresOverridable=, respectively. However, if the units - listed here are not started already + listed here are not started already, they will not be started and the transaction will fail immediately. @@ -506,7 +517,7 @@ listed in this option will be started if the configuring unit is. However, if the listed units fail to start - or cannot be added to the transaction + or cannot be added to the transaction, this has no impact on the validity of the transaction as a whole. This is the recommended way to hook start-up @@ -519,7 +530,7 @@ symlinks to a .wants/ directory accompanying the unit file. For - details see above. + details, see above. @@ -528,7 +539,7 @@ Configures requirement dependencies, very similar in style to Requires=, however - in addition to this behavior it also + in addition to this behavior, it also declares that this unit is stopped when any of the units listed suddenly disappears. Units can suddenly, @@ -548,7 +559,7 @@ of units. When systemd stops or restarts the units listed here, the action is propagated to this unit. - Note that this is a one way dependency — + Note that this is a one-way dependency — changes to this unit do not affect the listed units. @@ -577,9 +588,9 @@ be modified to be fixed (in case one or both jobs are not a required part of the transaction). In the latter - case the job that is not the required + case, the job that is not the required will be removed, or in case both are - not required the unit that conflicts + not required, the unit that conflicts will be started and the unit that is conflicted is stopped. @@ -606,7 +617,7 @@ a common pattern to include a unit name in both the After= and - Requires= option in + Requires= option, in which case the unit listed will be started before the unit that is configured with these options. This @@ -634,7 +645,7 @@ dependency on another unit is shut down while the latter is started up, the shut down is ordered before the - start-up regardless whether the + start-up regardless of whether the ordering dependency is actually of type After= or Before=. If two @@ -686,13 +697,13 @@ directives (see systemd.exec5 for details). If a unit that has this - setting set is started its processes + setting set is started, its processes will see the same /tmp, /tmp/var and network namespace as one listed unit that is started. If multiple listed - units are already started it is not + units are already started, it is not defined which namespace is joined. Note that this setting only has an effect if @@ -706,13 +717,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 +903,15 @@ + ConditionArchitecture= + ConditionVirtualization= + ConditionHost= + ConditionKernelCommandLine= + ConditionSecurity= + ConditionCapability= + ConditionACPower= + ConditionNeedsUpdate= + ConditionFirstBoot= ConditionPathExists= ConditionPathExistsGlob= ConditionPathIsDirectory= @@ -888,12 +921,6 @@ ConditionDirectoryNotEmpty= ConditionFileNotEmpty= ConditionFileIsExecutable= - ConditionKernelCommandLine= - ConditionVirtualization= - ConditionSecurity= - ConditionCapability= - ConditionHost= - ConditionACPower= ConditionNull= Before starting a unit @@ -908,93 +935,52 @@ queued start job is to be executed. - With - ConditionPathExists= - a file existence condition is - checked before a unit is started. If - the specified absolute path name does - not exist, the condition will - fail. If the absolute path name passed - to - ConditionPathExists= - is prefixed with an exclamation mark - (!), the test is negated, and the unit - is only started if the path does not - exist. - - ConditionPathExistsGlob= - is similar to - ConditionPathExists=, - 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. - - ConditionPathIsReadWrite= - is similar to - ConditionPathExists= - but verifies whether the underlying - file system is readable and writable - (i.e. not mounted - read-only). - - ConditionDirectoryNotEmpty= - is similar to - ConditionPathExists= - but verifies whether a certain path - exists and is a non-empty - directory. - - ConditionFileNotEmpty= - is similar to - ConditionPathExists= - but verifies whether a certain path - exists and refers to a regular file - with a non-zero size. - - ConditionFileIsExecutable= - is similar to - ConditionPathExists= - but verifies whether a certain path - exists, is a regular file and marked - executable. - - Similar, - 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. + 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 @@ -1015,7 +1001,6 @@ oracle, xen, bochs, - chroot, uml, openvz, lxc, @@ -1028,6 +1013,36 @@ 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 @@ -1047,26 +1062,12 @@ (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 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 @@ -1084,6 +1085,116 @@ 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 + checked before a unit is started. If + the specified absolute path name does + not exist, the condition will + fail. If the absolute path name passed + to + ConditionPathExists= + is prefixed with an exclamation mark + (!), the test is negated, and the unit + is only started if the path does not + exist. + + ConditionPathExistsGlob= + is similar to + ConditionPathExists=, + 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. + + ConditionPathIsReadWrite= + is similar to + ConditionPathExists= + but verifies whether the underlying + file system is readable and writable + (i.e. not mounted + read-only). + + ConditionDirectoryNotEmpty= + is similar to + ConditionPathExists= + but verifies whether a certain path + exists and is a non-empty + directory. + + ConditionFileNotEmpty= + is similar to + ConditionPathExists= + but verifies whether a certain path + exists and refers to a regular file + with a non-zero size. + + ConditionFileIsExecutable= + is similar to + ConditionPathExists= + but verifies whether a certain path + exists, is a regular file and marked + executable. + Finally, ConditionNull= may be used to add a constant condition @@ -1126,12 +1237,17 @@ 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. + + + + [Install] Section Options + Unit file may include a [Install] section, which carries installation information for the unit. This section is not interpreted by @@ -1226,6 +1342,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 @@ -1270,7 +1399,7 @@ %p Prefix name - For instantiated units this refers to the string before the @ character of the unit name. For non-instantiated units this refers to the name of the unit with the type suffix removed. + For instantiated units, this refers to the string before the @ character of the unit name. For non-instantiated units, this refers to the name of the unit with the type suffix removed. %P @@ -1304,7 +1433,7 @@ %R - Root control group path where slices and units are placed below + Root control group path below which slices and units are placed For system instances, this resolves to /, except in containers, where this maps to the container's root control group path. @@ -1325,12 +1454,12 @@ %h User home directory - This is the home directory of the configured user of the unit, or (if none is set) the user running the systemd user instance. Similar to %U this specifier is not available for units run by the systemd system instance, unless the configured user is the root user. + This is the home directory of the configured user of the unit, or (if none is set) the user running the systemd user instance. Similar to %U, this specifier is not available for units run by the systemd system instance, unless the configured user is the root user. %s User shell - This is the shell of the configured user of the unit, or (if none is set) the user running the systemd user instance. Similar to %U this specifier is not available for units run by the systemd system instance, unless the configured user is the root user. + This is the shell of the configured user of the unit, or (if none is set) the user running the systemd user instance. Similar to %U, this specifier is not available for units run by the systemd system instance, unless the configured user is the root user. %m @@ -1381,7 +1510,7 @@ systemd.scope5, systemd.slice5, systemd.time7, - capabilities7, + capabilities7, systemd.directives7, uname1