chiark / gitweb /
man: xinclude --help/--version/--no-pager
[elogind.git] / man / systemd.unit.xml
index 54d5590c81994c49f8037a6f4967c4ca6d806f9d..2b59b1b841c64b3c2c5d9d870c68ef12b5ea73e8 100644 (file)
                 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 <literal>@</literal> character, systemd will look for a
                 unit template that shares the same name but with the
                 instance string (i.e. the part between the <literal>@</literal> character
                                 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
                                 <varname>Requires=</varname> and
                                 <varname>RequiresOverridable=</varname>,
                                 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.
                                 </para></listitem>
                                 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
                                 symlinks to a
                                 <filename>.wants/</filename> directory
                                 accompanying the unit file. For
-                                details see above.</para></listitem>
+                                details, see above.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 <listitem><para>Configures requirement
                                 dependencies, very similar in style to
                                 <varname>Requires=</varname>, 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,
                                 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.
                                 </para></listitem>
                                 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.</para></listitem>
                                 a common pattern to include a unit
                                 name in both the
                                 <varname>After=</varname> and
-                                <varname>Requires=</varname> option in
+                                <varname>Requires=</varname> option, in
                                 which case the unit listed will be
                                 started before the unit that is
                                 configured with these options. This
                                 directives (see
                                 <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
                                 for details). If a unit that has this
-                                setting set is started its processes
+                                setting set is started, its processes
                                 will see the same
                                 <filename>/tmp</filename>,
                                 <filename>/tmp/var</filename> 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
                         </varlistentry>
 
                         <varlistentry>
+                                <term><varname>ConditionArchitecture=</varname></term>
+                                <term><varname>ConditionVirtualization=</varname></term>
+                                <term><varname>ConditionHost=</varname></term>
+                                <term><varname>ConditionKernelCommandLine=</varname></term>
+                                <term><varname>ConditionSecurity=</varname></term>
+                                <term><varname>ConditionCapability=</varname></term>
+                                <term><varname>ConditionACPower=</varname></term>
                                 <term><varname>ConditionPathExists=</varname></term>
                                 <term><varname>ConditionPathExistsGlob=</varname></term>
                                 <term><varname>ConditionPathIsDirectory=</varname></term>
                                 <term><varname>ConditionDirectoryNotEmpty=</varname></term>
                                 <term><varname>ConditionFileNotEmpty=</varname></term>
                                 <term><varname>ConditionFileIsExecutable=</varname></term>
-                                <term><varname>ConditionKernelCommandLine=</varname></term>
-                                <term><varname>ConditionVirtualization=</varname></term>
-                                <term><varname>ConditionSecurity=</varname></term>
-                                <term><varname>ConditionCapability=</varname></term>
-                                <term><varname>ConditionHost=</varname></term>
-                                <term><varname>ConditionACPower=</varname></term>
                                 <term><varname>ConditionNull=</varname></term>
 
                                 <listitem><para>Before starting a unit
                                 queued start job is to be
                                 executed.</para>
 
-                                <para>With
-                                <varname>ConditionPathExists=</varname>
-                                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
-                                <varname>ConditionPathExists=</varname>
-                                is prefixed with an exclamation mark
-                                (<literal>!</literal>), the test is negated, and the unit
-                                is only started if the path does not
-                                exist.</para>
-
-                                <para><varname>ConditionPathExistsGlob=</varname>
-                                is similar to
-                                <varname>ConditionPathExists=</varname>,
-                                but checks for the existence of at
-                                least one file or directory matching
-                                the specified globbing pattern.</para>
-
-                                <para><varname>ConditionPathIsDirectory=</varname>
-                                is similar to
-                                <varname>ConditionPathExists=</varname>
-                                but verifies whether a certain path
-                                exists and is a
-                                directory.</para>
-
-                                <para><varname>ConditionPathIsSymbolicLink=</varname>
-                                is similar to
-                                <varname>ConditionPathExists=</varname>
-                                but verifies whether a certain path
-                                exists and is a symbolic
-                                link.</para>
-
-                                <para><varname>ConditionPathIsMountPoint=</varname>
-                                is similar to
-                                <varname>ConditionPathExists=</varname>
-                                but verifies whether a certain path
-                                exists and is a mount
-                                point.</para>
-
-                                <para><varname>ConditionPathIsReadWrite=</varname>
-                                is similar to
-                                <varname>ConditionPathExists=</varname>
-                                but verifies whether the underlying
-                                file system is readable and writable
-                                (i.e. not mounted
-                                read-only).</para>
-
-                                <para><varname>ConditionDirectoryNotEmpty=</varname>
-                                is similar to
-                                <varname>ConditionPathExists=</varname>
-                                but verifies whether a certain path
-                                exists and is a non-empty
-                                directory.</para>
-
-                                <para><varname>ConditionFileNotEmpty=</varname>
-                                is similar to
-                                <varname>ConditionPathExists=</varname>
-                                but verifies whether a certain path
-                                exists and refers to a regular file
-                                with a non-zero size.</para>
-
-                                <para><varname>ConditionFileIsExecutable=</varname>
-                                is similar to
-                                <varname>ConditionPathExists=</varname>
-                                but verifies whether a certain path
-                                exists, is a regular file and marked
-                                executable.</para>
-
-                                <para>Similarly,
-                                <varname>ConditionKernelCommandLine=</varname>
-                                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
-                                <literal>=</literal>). 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.</para>
+                                <para><varname>ConditionArchitecture=</varname>
+                                may be used to check whether the
+                                system is running on a specific
+                                architecture. Takes one of
+                                <varname>x86</varname>,
+                                <varname>x86-64</varname>,
+                                <varname>ppc</varname>,
+                                <varname>ppc64</varname>,
+                                <varname>ia64</varname>,
+                                <varname>parisc</varname>,
+                                <varname>parisc64</varname>,
+                                <varname>s390</varname>,
+                                <varname>s390x</varname>,
+                                <varname>sparc</varname>,
+                                <varname>sparc64</varname>,
+                                <varname>mips</varname>,
+                                <varname>mips64</varname>,
+                                <varname>alpha</varname>,
+                                <varname>arm</varname>,
+                                <varname>arm-be</varname>,
+                                <varname>arm64</varname>,
+                                <varname>arm64-be</varname>,
+                                <varname>sh</varname>,
+                                <varname>sh64</varname>,
+                                <varname>m86k</varname> to test
+                                against a specific architecture. The
+                                architecture is determined from the
+                                information returned by
+                                <citerefentry><refentrytitle>uname</refentrytitle><manvolnum>2</manvolnum></citerefentry>
+                                and is thus subject to
+                                <citerefentry><refentrytitle>personality</refentrytitle><manvolnum>2</manvolnum></citerefentry>. Note
+                                that a <varname>Personality=</varname>
+                                setting in the same unit file has no
+                                effect on this condition. A special
+                                architecture name
+                                <varname>native</varname> is mapped to
+                                the architecture the system manager
+                                itself is compiled for. The test may
+                                be negated by prepending an
+                                exclamation mark.</para>
 
                                 <para><varname>ConditionVirtualization=</varname>
                                 may be used to check whether the
                                 test may be negated by prepending an
                                 exclamation mark.</para>
 
+                                <para><varname>ConditionHost=</varname>
+                                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
+                                <citerefentry><refentrytitle>gethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
+                                or a machine ID formatted as string
+                                (see
+                                <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
+                                The test may be negated by prepending
+                                an exclamation mark.</para>
+
+                                <para><varname>ConditionKernelCommandLine=</varname>
+                                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
+                                <literal>=</literal>). 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.</para>
+
                                 <para><varname>ConditionSecurity=</varname>
                                 may be used to check whether the given
                                 security module is enabled on the
                                 possibly prefixed with an exclamation
                                 mark to negate the check.</para>
 
-                                <para><varname>ConditionHost=</varname>
-                                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
-                                <citerefentry><refentrytitle>gethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
-                                or a machine ID formatted as string
-                                (see
-                                <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
-                                The test may be negated by prepending
-                                an exclamation mark.</para>
-
                                 <para><varname>ConditionACPower=</varname>
                                 may be used to check whether the
                                 system has AC power, or is exclusively
                                 all AC connectors are disconnected
                                 from a power source.</para>
 
+                                <para>With
+                                <varname>ConditionPathExists=</varname>
+                                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
+                                <varname>ConditionPathExists=</varname>
+                                is prefixed with an exclamation mark
+                                (<literal>!</literal>), the test is negated, and the unit
+                                is only started if the path does not
+                                exist.</para>
+
+                                <para><varname>ConditionPathExistsGlob=</varname>
+                                is similar to
+                                <varname>ConditionPathExists=</varname>,
+                                but checks for the existence of at
+                                least one file or directory matching
+                                the specified globbing pattern.</para>
+
+                                <para><varname>ConditionPathIsDirectory=</varname>
+                                is similar to
+                                <varname>ConditionPathExists=</varname>
+                                but verifies whether a certain path
+                                exists and is a
+                                directory.</para>
+
+                                <para><varname>ConditionPathIsSymbolicLink=</varname>
+                                is similar to
+                                <varname>ConditionPathExists=</varname>
+                                but verifies whether a certain path
+                                exists and is a symbolic
+                                link.</para>
+
+                                <para><varname>ConditionPathIsMountPoint=</varname>
+                                is similar to
+                                <varname>ConditionPathExists=</varname>
+                                but verifies whether a certain path
+                                exists and is a mount
+                                point.</para>
+
+                                <para><varname>ConditionPathIsReadWrite=</varname>
+                                is similar to
+                                <varname>ConditionPathExists=</varname>
+                                but verifies whether the underlying
+                                file system is readable and writable
+                                (i.e. not mounted
+                                read-only).</para>
+
+                                <para><varname>ConditionDirectoryNotEmpty=</varname>
+                                is similar to
+                                <varname>ConditionPathExists=</varname>
+                                but verifies whether a certain path
+                                exists and is a non-empty
+                                directory.</para>
+
+                                <para><varname>ConditionFileNotEmpty=</varname>
+                                is similar to
+                                <varname>ConditionPathExists=</varname>
+                                but verifies whether a certain path
+                                exists and refers to a regular file
+                                with a non-zero size.</para>
+
+                                <para><varname>ConditionFileIsExecutable=</varname>
+                                is similar to
+                                <varname>ConditionPathExists=</varname>
+                                but verifies whether a certain path
+                                exists, is a regular file and marked
+                                executable.</para>
+
                                 <para>Finally,
                                 <varname>ConditionNull=</varname> may
                                 be used to add a constant condition
                       <row>
                         <entry><literal>%p</literal></entry>
                         <entry>Prefix name</entry>
-                        <entry>For instantiated units this refers to the string before the <literal>@</literal> character of the unit name. For non-instantiated units this refers to the name of the unit with the type suffix removed.</entry>
+                        <entry>For instantiated units, this refers to the string before the <literal>@</literal> character of the unit name. For non-instantiated units, this refers to the name of the unit with the type suffix removed.</entry>
                       </row>
                       <row>
                         <entry><literal>%P</literal></entry>
                       <row>
                         <entry><literal>%h</literal></entry>
                         <entry>User home directory</entry>
-                        <entry>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 <literal>%U</literal> this specifier is not available for units run by the systemd system instance, unless the configured user is the root user.</entry>
+                        <entry>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 <literal>%U</literal>, this specifier is not available for units run by the systemd system instance, unless the configured user is the root user.</entry>
                       </row>
                       <row>
                         <entry><literal>%s</literal></entry>
                         <entry>User shell</entry>
-                        <entry>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 <literal>%U</literal> this specifier is not available for units run by the systemd system instance, unless the configured user is the root user.</entry>
+                        <entry>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 <literal>%U</literal>, this specifier is not available for units run by the systemd system instance, unless the configured user is the root user.</entry>
                       </row>
                       <row>
                         <entry><literal>%m</literal></entry>