chiark / gitweb /
man: Fix minor issues in systemd.unit.xml
[elogind.git] / man / systemd.unit.xml
index 8a402d053d9a6e100cf60e2bd12c62fb12086981..d6bb60486a2937b95fa48a13405efbb65f6850e5 100644 (file)
@@ -56,7 +56,8 @@
                 <filename>systemd.swap</filename>,
                 <filename>systemd.target</filename>,
                 <filename>systemd.path</filename>,
-                <filename>systemd.timer</filename></para>
+                <filename>systemd.timer</filename>,
+                <filename>systemd.snapshot</filename></para>
         </refsynopsisdiv>
 
         <refsect1>
                 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>. The
                 syntax is inspired by <ulink
                 url="http://standards.freedesktop.org/desktop-entry-spec/latest/">XDG
-                Desktop Entry Specificiation</ulink> <filename>.desktop</filename> files, which are in turn
+                Desktop Entry Specification</ulink> <filename>.desktop</filename> files, which are in turn
                 inspired by Microsoft Windows
                 <filename>.ini</filename> files.</para>
 
                 <para>This man pages lists the common configuration
-                options of the all unit types. These options need to
+                options of all the unit types. These options need to
                 be configured in the [Unit] resp. [Install]
                 section of the unit files.</para>
 
                 <para>In addition to the generic [Unit] and [Install]
-                sections described here each unit should have a
+                sections described here, each unit should have a
                 type-specific section, e.g. [Service] for a service
                 unit. See the respective man pages for more
                 information.</para>
@@ -94,7 +95,7 @@
                 additional information in the unit files.</para>
 
                 <para>Boolean arguments used in unit files can be
-                written in various forms. For positive settings the
+                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
                 <option>false</option> and <option>off</option> are
                 equivalent.</para>
 
+                <para>Time span values encoded in unit files can be
+                written in various formats. A stand-alone number
+                specifies a time in seconds. If suffixed with a time
+                unit, the unit is honored. A concatenation of
+                multiple values with units is supported, in which case
+                the values are added up. Example: "50" refers to 50
+                seconds; "2min 200ms" refers to 2 minutes plus 200
+                milliseconds, i.e. 120200ms. The following time units
+                are understood: s, min, h, d, w, ms, us.</para>
+
                 <para>Empty lines and lines starting with # or ; are
-                ignored. This may be used for commenting.</para>
+                ignored. This may be used for commenting. Lines ending
+                in a backslash are concatenated with the following
+                line while reading and the backslash is replaced by a
+                space character. This may be used to wrap long lines.</para>
 
                 <para>If a line starts with <option>.include</option>
-                followed by a file name the specified file will be
-                read as if its contents where listed in place of the
+                followed by a file name, the specified file will be
+                read as if its contents were listed in place of the
                 <option>.include</option> directive.</para>
 
                 <para>Along with a unit file
                 activation which makes dependencies implicit, which
                 both results in a simpler and more flexible
                 system.</para>
+
+                <para>Some unit names reflect paths existing in the
+                file system name space. Example: a device unit
+                <filename>dev-sda.device</filename> refers to a device
+                with the device node <filename>/dev/sda</filename> in
+                the file system namespace. If this applies a special
+                way to escape the path name is used, so that it is
+                usable as part of a file name. 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.</para>
+
+                <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
+                first search for the literal unit name in the
+                filesystem. 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
+                and the suffix) removed. Example: if a service
+                <filename>getty@tty3.service</filename> is requested
+                and no file by that name is found, systemd will look
+                for <filename>getty@.service</filename> and
+                instantiate a service from that configuration file if
+                it is found. To refer to the instance string from
+                within the configuration file you may use the special
+                <literal>%i</literal> specifier in many of the
+                configuration options. Other specifiers that may be
+                used are <literal>%n</literal>, <literal>%N</literal>,
+                <literal>%p</literal>, <literal>%P</literal> and
+                <literal>%I</literal>, for the full unit name, the
+                unescaped unit name, the prefix name, the unescaped
+                prefix name and the unescaped instance name,
+                respectively. The prefix name here refers to the
+                string before the @, i.e. "getty" in the example
+                above, where "tty3" is the instance name.</para>
         </refsect1>
 
         <refsect1>
                         <varlistentry>
                                 <term><varname>Description=</varname></term>
                                 <listitem><para>A free-form string
-                                describing the unit. This is intended for use
-                                in UIs wanting to show
-                                descriptive information along with the
-                                unit name.</para></listitem>
+                                describing the unit. This is intended
+                                for use in UIs to show descriptive
+                                information along with the unit
+                                name.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
 
                                 <listitem><para>Configures requirement
                                 dependencies on other units. If this
-                                units get activated the units listed
+                                unit gets activated, the units listed
                                 here will be activated as well. If one
                                 of the other units gets deactivated or
                                 its activation fails, this unit will
                                 Dependencies listed in
                                 <varname>RequiresOverridable=</varname>
                                 which cannot be fulfilled or fail to
-                                start are ignored iff the startup was
+                                start are ignored if the startup was
                                 explicitly requested by the user. If
                                 the start-up was pulled in indirectly
                                 by some dependency or automatic
                                 must be fulfilled and otherwise the
                                 transaction fails. Hence, this option
                                 may be used to configure dependencies
-                                that are normally honoured unless the
+                                that are normally honored unless the
                                 user explicitly starts up the unit, in
                                 which case whether they failed or not
                                 is irrelevant.</para></listitem>
                                 <varname>Requires=</varname>. A unit
                                 listed in this option will be started
                                 if the configuring unit is. However,
-                                it the listed unit fails to start up
+                                if the listed unit fails to start up
                                 or cannot be added to the transaction
                                 this has no impact on the validity of
                                 the transaction as a whole. This is
 
                                 <listitem><para>Configures negative
                                 requirement dependencies. If a unit
-                                that has a
+                                has a
                                 <varname>Conflicts=</varname> setting
-                                on another unit starting the former
+                                on another unit, starting the former
                                 will stop the latter and vice
                                 versa. Note that this setting is
                                 independent of and orthogonal to the
                                 <filename>foo.service</filename>
                                 contains a setting
                                 <option>Before=bar.service</option>
-                                and both units are being started
+                                and both units are being started,
                                 <filename>bar.service</filename>'s
                                 start-up is delayed until
                                 <filename>foo.service</filename> is
                                 listed unit is started. Note that when
                                 two units with an ordering dependency
                                 between them are shut down, the
-                                inverse of of the start-up order is
+                                inverse of the start-up order is
                                 applied. i.e. if a unit is configured
                                 with <varname>After=</varname> on
                                 another unit, the former is stopped
 
                                 <listitem><para>Takes a boolean
                                 argument. If <option>true</option> and
-                                the unit stops without this being
-                                requested by the user all units
+                                the unit stops without being requested
+                                by the user, all units
                                 depending on it will be stopped as
                                 well. (e.g. if a service exits or
                                 crashes on its own behalf, units using
                                 it will be stopped) Note that normally
-                                if a unit stops without user request
+                                if a unit stops without a user request,
                                 units depending on it will not be
                                 terminated. Only if the user requested
-                                shutdown of a unit all units depending
-                                on the unit will be shut down as well
+                                shutdown of a unit, all units depending
+                                on that unit will be shut down as well
                                 and at the same time. Defaults to
                                 <option>false</option>.</para></listitem>
                         </varlistentry>
                                 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
-                                systemd will by default not stop units
+                                minimize the work to be executed,
+                                systemd will not stop units by default
                                 unless they are conflicting with other
                                 units, or the user explicitly
                                 requested their shut down. If this
-                                option is set a unit will be
+                                option is set, a unit will be
                                 automatically cleaned up if no other
                                 active unit requires it. Defaults to
                                 <option>false</option>.</para></listitem>
 
                                 <listitem><para>Takes a boolean
                                 argument. If <option>true</option>
-                                this unit may only be activated
+                                this unit can only be activated
                                 indirectly. In this case explicit
                                 start-up requested by the user is
-                                denied, however if it is started as
-                                dependency of another unit start-up
+                                denied, however if it is started as a
+                                dependency of another unit, start-up
                                 will succeed. This is mostly a safety
                                 feature to ensure that the user does
-                                not accidently activate units that are
+                                not accidentally activate units that are
                                 not intended to be activated
                                 explicitly. This option defaults to
                                 <option>false</option>.</para></listitem>
                         </varlistentry>
 
+                        <varlistentry>
+                                <term><varname>DefaultDependencies=</varname></term>
+
+                                <listitem><para>Takes a boolean
+                                argument. If <option>true</option>
+                                (the default), a few default
+                                dependencies will implicitly be
+                                created for the unit. The actual
+                                dependencies created depend on the
+                                unit type. For example, for service
+                                units, these dependencies ensure that
+                                the service is started only after
+                                basic system initialization is
+                                completed and is properly terminated on
+                                system shutdown. See the respective
+                                man pages for details. Generally, only
+                                services involved with early boot or
+                                late shutdown should set this option
+                                to <option>false</option>. It is
+                                highly recommended to leave this
+                                option enabled for the majority of
+                                common units. If set to
+                                <option>false</option> this option
+                                does not disable all implicit
+                                dependencies, just non-essential
+                                ones.</para></listitem>
+                        </varlistentry>
+
                 </variablelist>
 
                 <para>Unit file may include a [Install] section, which
                         <varlistentry>
                                 <term><varname>Alias=</varname></term>
 
-                                <listitem><para>Additional names, this
+                                <listitem><para>Additional names this
                                 unit shall be installed under. The
                                 names listed here must have the same
                                 suffix (i.e. type) as the unit file
                                 effect that when the listed unit name
                                 is activated the unit listing it is
                                 activated
-                                to. <command>WantedBy=foo.service</command>
+                                too. <command>WantedBy=foo.service</command>
                                 in a service
                                 <filename>bar.service</filename> is
                                 mostly equivalent to
                                 install when this unit is
                                 installed. If the user requests
                                 installation of a unit with this
-                                option configured
+                                option configured,
                                 <command>systemd-install</command>
                                 will automatically install units
                                 listed in this option as
                         <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
-                        <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                        <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+                        <citerefentry><refentrytitle>systemd.snapshot</refentrytitle><manvolnum>5</manvolnum></citerefentry>
                 </para>
         </refsect1>