chiark / gitweb /
man: mention --runtime where appropriate
[elogind.git] / man / systemd.unit.xml
index 1b71538c8294f3a10ba54fa1a685f9e6130a266c..d61426a8454be353561054d80b0d3c53f6b2963b 100644 (file)
@@ -70,7 +70,8 @@
 <filename>...</filename>
                 </literallayout></para>
 
 <filename>...</filename>
                 </literallayout></para>
 
-                <para><literallayout><filename>/etc/systemd/user/*</filename>
+                <para><literallayout><filename>$HOME/.config/systemd/user/*</filename>
+<filename>/etc/systemd/user/*</filename>
 <filename>/run/systemd/user/*</filename>
 <filename>/usr/lib/systemd/user/*</filename>
 <filename>...</filename>
 <filename>/run/systemd/user/*</filename>
 <filename>/usr/lib/systemd/user/*</filename>
 <filename>...</filename>
 
                 <para>Unit files may contain additional options on top
                 of those listed here. If systemd encounters an unknown
 
                 <para>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
+                option, it will write a warning log message but
                 continue loading the unit. If an option is prefixed
                 continue loading the unit. If an option is prefixed
-                with <option>X-</option> it is ignored completely by
+                with <option>X-</option>, it is ignored completely by
                 systemd. Applications may use this to include
                 additional information in the unit files.</para>
 
                 systemd. Applications may use this to include
                 additional information in the unit files.</para>
 
                 written in various formats. For positive settings the
                 strings <option>1</option>, <option>yes</option>,
                 <option>true</option> and <option>on</option> are
                 written in various formats. For positive settings the
                 strings <option>1</option>, <option>yes</option>,
                 <option>true</option> and <option>on</option> are
-                equivalent. For negative settings the strings
+                equivalent. For negative settings, the strings
                 <option>0</option>, <option>no</option>,
                 <option>false</option> and <option>off</option> are
                 equivalent.</para>
                 <option>0</option>, <option>no</option>,
                 <option>false</option> and <option>off</option> are
                 equivalent.</para>
                 space character. This may be used to wrap long lines.</para>
 
                 <para>Along with a unit file
                 space character. This may be used to wrap long lines.</para>
 
                 <para>Along with a unit file
-                <filename>foo.service</filename> the directory
+                <filename>foo.service</filename>, the directory
                 <filename>foo.service.wants/</filename> may exist. All
                 unit files symlinked from such a directory are
                 implicitly added as dependencies of type
                 <varname>Wanted=</varname> 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
                 <filename>foo.service.wants/</filename> may exist. All
                 unit files symlinked from such a directory are
                 implicitly added as dependencies of type
                 <varname>Wanted=</varname> 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 <varname>Wanted=</varname> see
+                about the semantics of <varname>Wanted=</varname>, see
                 below. The preferred way to create symlinks in the
                 <filename>.wants/</filename> directory of a unit file
                 is with the <command>enable</command> command of the
                 below. The preferred way to create symlinks in the
                 <filename>.wants/</filename> directory of a unit file
                 is with the <command>enable</command> command of the
                 <filename>.requires/</filename> in this case.</para>
 
                 <para>Along with a unit file
                 <filename>.requires/</filename> in this case.</para>
 
                 <para>Along with a unit file
-                <filename>foo.service</filename> a directory
+                <filename>foo.service</filename>, a directory
                 <filename>foo.service.d/</filename> may exist. All
                 files with the suffix <literal>.conf</literal> from
                 this directory will be parsed after the file itself is
                 <filename>foo.service.d/</filename> may exist. All
                 files with the suffix <literal>.conf</literal> from
                 this directory will be parsed after the file itself is
                 file system namespace. Example: a device unit
                 <filename>dev-sda.device</filename> refers to a device
                 with the device node <filename noindex='true'>/dev/sda</filename> in
                 file system namespace. Example: a device unit
                 <filename>dev-sda.device</filename> refers to a device
                 with the device node <filename noindex='true'>/dev/sda</filename> in
-                the file system namespace. If this applies a special
+                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
                 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
                 <para>Optionally, units may be instantiated from a
                 template file at runtime. This allows creation of
                 multiple units from a single configuration file. If
                 <para>Optionally, units may be instantiated from a
                 template file at runtime. This allows creation of
                 multiple units from a single configuration file. If
-                systemd looks for a unit configuration file it will
+                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
                 name contains an <literal>@</literal> character, systemd will look for a
                 first search for the literal unit name in the
                 filesystem. If that yields no success and the unit
                 name contains an <literal>@</literal> character, systemd will look for a
                 configuration options. See below for details.</para>
 
                 <para>If a unit file is empty (i.e. has the file size
                 configuration options. See below for details.</para>
 
                 <para>If a unit file is empty (i.e. has the file size
-                0) or is symlinked to <filename>/dev/null</filename>
+                0) or is symlinked to <filename>/dev/null</filename>,
                 its configuration will not be loaded and it appears
                 with a load state of <literal>masked</literal>, and
                 cannot be activated. Use this as an effective way to
                 its configuration will not be loaded and it appears
                 with a load state of <literal>masked</literal>, and
                 cannot be activated. Use this as an effective way to
 
                 <para>Unit files are loaded from a set of paths
                 determined during compilation, described in the two
 
                 <para>Unit files are loaded from a set of paths
                 determined during compilation, described in the two
-                tables below. Unit files found in directories higher
-                in the hierarchy override files with the same name
-                lower in the hierarchy, thus allowing overrides.
-                </para>
+                tables below. Unit files found in directories listed
+                earlier override files with the same name in
+                directories lower in the list.</para>
 
                 <para>When systemd is running in user mode
                 (<option>--user</option>) and the variable
 
                 <para>When systemd is running in user mode
                 (<option>--user</option>) and the variable
                       </row>
                     </thead>
                     <tbody>
                       </row>
                     </thead>
                     <tbody>
-                      <row>
-                        <entry><filename>/run/systemd/generator.early</filename></entry>
-                        <entry>Generated units (early)</entry>
-                      </row>
                       <row>
                         <entry><filename>/etc/systemd/system</filename></entry>
                         <entry>Local configuration</entry>
                       </row>
                       <row>
                         <entry><filename>/run/systemd/system</filename></entry>
                       <row>
                         <entry><filename>/etc/systemd/system</filename></entry>
                         <entry>Local configuration</entry>
                       </row>
                       <row>
                         <entry><filename>/run/systemd/system</filename></entry>
-                        <entry>Volatile units</entry>
-                      </row>
-                      <row>
-                        <entry><filename>/run/systemd/generator</filename></entry>
-                        <entry>Generated units (middle)</entry>
-                      </row>
-                      <row>
-                        <entry><filename>/usr/local/lib/systemd/system</filename></entry>
-                        <entry>Units for local packages</entry>
+                        <entry>Runtime units</entry>
                       </row>
                       <row>
                         <entry><filename>/usr/lib/systemd/system</filename></entry>
                       </row>
                       <row>
                         <entry><filename>/usr/lib/systemd/system</filename></entry>
-                        <entry>Units for installed packages</entry>
-                      </row>
-                      <row>
-                        <entry><filename>/run/systemd/generator.late</filename></entry>
-                        <entry>Generated units (late)</entry>
+                        <entry>Units of installed packages</entry>
                       </row>
                     </tbody>
                   </tgroup>
                       </row>
                     </tbody>
                   </tgroup>
                     </thead>
                     <tbody>
                       <row>
                     </thead>
                     <tbody>
                       <row>
-                        <entry><filename>/tmp/systemd-generator.early.<replaceable>XXXXXX</replaceable></filename></entry>
-                        <entry>Generated units (early)</entry>
+                        <entry><filename>$HOME/.config/systemd/user</filename></entry>
+                        <entry>User configuration</entry>
                       </row>
                       <row>
                         <entry><filename>/etc/systemd/user</filename></entry>
                       </row>
                       <row>
                         <entry><filename>/etc/systemd/user</filename></entry>
                       </row>
                       <row>
                         <entry><filename>/run/systemd/user</filename></entry>
                       </row>
                       <row>
                         <entry><filename>/run/systemd/user</filename></entry>
-                        <entry>Volatile units</entry>
-                      </row>
-                      <row>
-                        <entry><filename>/tmp/systemd-generator.<replaceable>XXXXXX</replaceable></filename></entry>
-                        <entry>Generated units (middle)</entry>
-                      </row>
-                      <row>
-                        <entry><filename>/usr/local/lib/systemd/user</filename></entry>
-                        <entry>Units for local packages</entry>
+                        <entry>Runtime units</entry>
                       </row>
                       <row>
                         <entry><filename>/usr/lib/systemd/user</filename></entry>
                       </row>
                       <row>
                         <entry><filename>/usr/lib/systemd/user</filename></entry>
-                        <entry>Units for installed packages</entry>
-                      </row>
-                      <row>
-                        <entry><filename>/tmp/systemd-generator.late.<replaceable>XXXXXX</replaceable></filename></entry>
-                        <entry>Generated units (late)</entry>
+                        <entry>Units of installed packages</entry>
                       </row>
                     </tbody>
                   </tgroup>
                       </row>
                     </tbody>
                   </tgroup>
                 <para>Additional units might be loaded into systemd
                 ("linked") from directories not on the unit load
                 path. See the <command>link</command> command for
                 <para>Additional units might be loaded into systemd
                 ("linked") from directories not on the unit load
                 path. See the <command>link</command> command for
-                <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
+                <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>. Also,
+                some units are dynamically created via generators
+                <ulink
+                url="http://www.freedesktop.org/wiki/Software/systemd/Generators/">Generators</ulink>.
                 </para>
         </refsect1>
 
                 </para>
         </refsect1>
 
                                 describing the unit. This is intended
                                 for use in UIs to show descriptive
                                 information along with the unit
                                 describing the unit. This is intended
                                 for use in UIs to show descriptive
                                 information along with the unit
-                                name.</para></listitem>
+                                name. The description should contain a name
+                                that means something to the end user.
+                                <literal>Apache2 Web Server</literal> is a good
+                                example. Bad examples are
+                                <literal>high-performance light-weight HTTP
+                                server</literal> (too generic) or
+                                <literal>Apache2</literal> (too specific and
+                                meaningless for people who do not know
+                                Apache).</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                         </varlistentry>
 
                         <varlistentry>
                                 the start-up was pulled in indirectly
                                 by some dependency or automatic
                                 start-up of units that is not
                                 the start-up was pulled in indirectly
                                 by some dependency or automatic
                                 start-up of units that is not
-                                requested by the user this dependency
+                                requested by the user, this dependency
                                 must be fulfilled and otherwise the
                                 transaction fails. Hence, this option
                                 may be used to configure dependencies
                                 must be fulfilled and otherwise the
                                 transaction fails. Hence, this option
                                 may be used to configure dependencies
                                 type <varname>After=</varname> or
                                 <varname>Before=</varname>. If two
                                 units have no ordering dependencies
                                 type <varname>After=</varname> or
                                 <varname>Before=</varname>. If two
                                 units have no ordering dependencies
-                                between them they are shut down
+                                between them, they are shut down
                                 or started up simultaneously, and
                                 no ordering takes
                                 place. </para></listitem>
                                 or started up simultaneously, and
                                 no ordering takes
                                 place. </para></listitem>
                                 <term><varname>OnFailureIsolate=</varname></term>
 
                                 <listitem><para>Takes a boolean
                                 <term><varname>OnFailureIsolate=</varname></term>
 
                                 <listitem><para>Takes a boolean
-                                argument. If <option>true</option> the
+                                argument. If <option>true</option>, the
                                 unit listed in
                                 <varname>OnFailure=</varname> will be
                                 enqueued in isolation mode, i.e. all
                                 units that are not its dependency will
                                 unit listed in
                                 <varname>OnFailure=</varname> will be
                                 enqueued in isolation mode, i.e. all
                                 units that are not its dependency will
-                                be stopped. If this is set only a
+                                be stopped. If this is set, only a
                                 single unit may be listed in
                                 <varname>OnFailure=</varname>. Defaults
                                 to
                                 single unit may be listed in
                                 <varname>OnFailure=</varname>. Defaults
                                 to
                                 <term><varname>IgnoreOnIsolate=</varname></term>
 
                                 <listitem><para>Takes a boolean
                                 <term><varname>IgnoreOnIsolate=</varname></term>
 
                                 <listitem><para>Takes a boolean
-                                argument. If <option>true</option>
+                                argument. If <option>true</option>,
                                 this unit will not be stopped when
                                 isolating another unit. Defaults to
                                 <option>false</option>.</para></listitem>
                                 this unit will not be stopped when
                                 isolating another unit. Defaults to
                                 <option>false</option>.</para></listitem>
                                 <term><varname>IgnoreOnSnapshot=</varname></term>
 
                                 <listitem><para>Takes a boolean
                                 <term><varname>IgnoreOnSnapshot=</varname></term>
 
                                 <listitem><para>Takes a boolean
-                                argument. If <option>true</option>
+                                argument. If <option>true</option>,
                                 this unit will not be included in
                                 snapshots. Defaults to
                                 <option>true</option> for device and
                                 this unit will not be included in
                                 snapshots. Defaults to
                                 <option>true</option> for device and
                                 <term><varname>StopWhenUnneeded=</varname></term>
 
                                 <listitem><para>Takes a boolean
                                 <term><varname>StopWhenUnneeded=</varname></term>
 
                                 <listitem><para>Takes a boolean
-                                argument. If <option>true</option>
+                                argument. If <option>true</option>,
                                 this unit will be stopped when it is
                                 no longer used. Note that in order to
                                 minimize the work to be executed,
                                 this unit will be stopped when it is
                                 no longer used. Note that in order to
                                 minimize the work to be executed,
                                 <term><varname>RefuseManualStop=</varname></term>
 
                                 <listitem><para>Takes a boolean
                                 <term><varname>RefuseManualStop=</varname></term>
 
                                 <listitem><para>Takes a boolean
-                                argument. If <option>true</option>
+                                argument. If <option>true</option>,
                                 this unit can only be activated
                                 or deactivated indirectly. In
                                 this unit can only be activated
                                 or deactivated indirectly. In
-                                this case explicit start-up
+                                this case, explicit start-up
                                 or termination requested by the
                                 user is denied, however if it is
                                 started or stopped as a
                                 or termination requested by the
                                 user is denied, however if it is
                                 started or stopped as a
                                 <term><varname>AllowIsolate=</varname></term>
 
                                 <listitem><para>Takes a boolean
                                 <term><varname>AllowIsolate=</varname></term>
 
                                 <listitem><para>Takes a boolean
-                                argument. If <option>true</option>
+                                argument. If <option>true</option>,
                                 this unit may be used with the
                                 <command>systemctl isolate</command>
                                 this unit may be used with the
                                 <command>systemctl isolate</command>
-                                command. Otherwise this will be
+                                command. Otherwise, this will be
                                 refused. It probably is a good idea to
                                 leave this disabled except for target
                                 units that shall be used similar to
                                 refused. It probably is a good idea to
                                 leave this disabled except for target
                                 units that shall be used similar to
                                 <term><varname>DefaultDependencies=</varname></term>
 
                                 <listitem><para>Takes a boolean
                                 <term><varname>DefaultDependencies=</varname></term>
 
                                 <listitem><para>Takes a boolean
-                                argument. If <option>true</option>
+                                argument. If <option>true</option>,
                                 (the default), a few default
                                 dependencies will implicitly be
                                 created for the unit. The actual
                                 (the default), a few default
                                 dependencies will implicitly be
                                 created for the unit. The actual
                                 <listitem><para>When clients are
                                 waiting for a job of this unit to
                                 complete, time out after the specified
                                 <listitem><para>When clients are
                                 waiting for a job of this unit to
                                 complete, time out after the specified
-                                time. If this time limit is reached
+                                time. If this time limit is reached,
                                 the job will be cancelled, the unit
                                 however will not change state or even
                                 enter the <literal>failed</literal>
                                 the job will be cancelled, the unit
                                 however will not change state or even
                                 enter the <literal>failed</literal>
 
                                 <listitem><para>Before starting a unit
                                 verify that the specified condition is
 
                                 <listitem><para>Before starting a unit
                                 verify that the specified condition is
-                                true. If it is not true the starting
+                                true. If it is not true, the starting
                                 of the unit will be skipped, however
                                 all ordering dependencies of it are
                                 still respected. A failing condition
                                 of the unit will be skipped, however
                                 all ordering dependencies of it are
                                 still respected. A failing condition
                                 a file existence condition is
                                 checked before a unit is started. If
                                 the specified absolute path name does
                                 a file existence condition is
                                 checked before a unit is started. If
                                 the specified absolute path name does
-                                not exist the condition will
+                                not exist, the condition will
                                 fail. If the absolute path name passed
                                 to
                                 <varname>ConditionPathExists=</varname>
                                 fail. If the absolute path name passed
                                 to
                                 <varname>ConditionPathExists=</varname>
                                 <varname>systemd-nspawn</varname> to
                                 test against a specific
                                 implementation. If multiple
                                 <varname>systemd-nspawn</varname> to
                                 test against a specific
                                 implementation. If multiple
-                                virtualization technologies are nested
+                                virtualization technologies are nested,
                                 only the innermost is considered. The
                                 test may be negated by prepending an
                                 exclamation mark.</para>
                                 only the innermost is considered. The
                                 test may be negated by prepending an
                                 exclamation mark.</para>
                                 battery powered at the time of
                                 activation of the unit. This takes a
                                 boolean argument. If set to
                                 battery powered at the time of
                                 activation of the unit. This takes a
                                 boolean argument. If set to
-                                <varname>true</varname> the condition
+                                <varname>true</varname>, 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
                                 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 <varname>false</varname> the
+                                set to <varname>false</varname>, the
                                 condition will hold only if there is
                                 at least one AC connector known and
                                 all AC connectors are disconnected
                                 condition will hold only if there is
                                 at least one AC connector known and
                                 all AC connectors are disconnected
                                 be used to add a constant condition
                                 check value to the unit. It takes a
                                 boolean argument. If set to
                                 be used to add a constant condition
                                 check value to the unit. It takes a
                                 boolean argument. If set to
-                                <varname>false</varname> the condition
+                                <varname>false</varname>, the condition
                                 will always fail, otherwise
                                 succeed.</para>
 
                                 <para>If multiple conditions are
                                 will always fail, otherwise
                                 succeed.</para>
 
                                 <para>If multiple conditions are
-                                specified the unit will be executed if
+                                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
                                 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
+                                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
                                 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
+                                symbol and an exclamation mark, the
                                 pipe symbol must be passed first, the
                                 exclamation second. Except for
                                 <varname>ConditionPathIsSymbolicLink=</varname>,
                                 all path checks follow symlinks. If
                                 any of these options is assigned the
                                 pipe symbol must be passed first, the
                                 exclamation second. Except for
                                 <varname>ConditionPathIsSymbolicLink=</varname>,
                                 all path checks follow symlinks. If
                                 any of these options is assigned the
-                                empty string the list of conditions is
+                                empty string, the list of conditions is
                                 reset completely, all previous
                                 condition settings (of any kind) will
                                 have no effect.</para></listitem>
                                 reset completely, all previous
                                 condition settings (of any kind) will
                                 have no effect.</para></listitem>