chiark / gitweb /
man: Fix minor issues in systemd.unit.xml
[elogind.git] / man / systemd.unit.xml
index 99bd8b3906f06a9c7256b8636b8b59706ed8a034..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
                                 name. This option may be specified
                                 more than once, in which case all
                                 listed names are used. At installation
-                                time
+                                time,
                                 <command>systemd-install</command>
                                 will create symlinks from these names
                                 to the unit file name. Note that this
                                 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>