chiark / gitweb /
util: when using basename() for creating temporary files, verify the resulting name...
[elogind.git] / man / systemd.service.xml
index dbc82edbd47bbcf0e56662faaa3a2abf59b6daa4..da9079cbb8dfe37aafeae9c534711e7eeb50af0b 100644 (file)
                                 as. This option is mandatory for
                                 services where
                                 <varname>Type=</varname> is set to
                                 as. This option is mandatory for
                                 services where
                                 <varname>Type=</varname> is set to
-                                <option>dbus</option>, but its use
-                                is otherwise recommended if the process
-                                takes a name on the D-Bus bus.</para>
+                                <option>dbus</option>.</para>
                                 </listitem>
                         </varlistentry>
 
                                 </listitem>
                         </varlistentry>
 
                                 used, zero or more commands may be
                                 specified. This can be specified by
                                 providing multiple command lines in
                                 used, zero or more commands may be
                                 specified. This can be specified by
                                 providing multiple command lines in
-                                the same directive , or alternatively,
+                                the same directive, or alternatively,
                                 this directive may be specified more
                                 than once with the same effect. If the
                                 empty string is assigned to this
                                 this directive may be specified more
                                 than once with the same effect. If the
                                 empty string is assigned to this
                                 when <varname>Type=oneshot</varname> is
                                 used, in which case the timeout
                                 is disabled by default
                                 when <varname>Type=oneshot</varname> is
                                 used, in which case the timeout
                                 is disabled by default
-                                (see <citerefentry><refentrytitle>systemd-systemd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
+                                (see <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
                                 </para></listitem>
                         </varlistentry>
 
                                 </para></listitem>
                         </varlistentry>
 
                                 the timeout logic. Defaults to
                                 <varname>DefaultTimeoutStopSec=</varname> from the
                                 manager configuration file
                                 the timeout logic. Defaults to
                                 <varname>DefaultTimeoutStopSec=</varname> from the
                                 manager configuration file
-                                (see <citerefentry><refentrytitle>systemd-systemd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
+                                (see <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
                                 </para></listitem>
                         </varlistentry>
 
                                 </para></listitem>
                         </varlistentry>
 
                                 (i.e. the "keep-alive ping"). If the time
                                 between two such calls is larger than
                                 the configured time, then the service
                                 (i.e. the "keep-alive ping"). If the time
                                 between two such calls is larger than
                                 the configured time, then the service
-                                is placed in a failed state. By
-                                setting <varname>Restart=</varname> to
+                                is placed in a failed state and it will
+                                be terminated with <varname>SIGABRT</varname>.
+                                By setting <varname>Restart=</varname> to
                                 <option>on-failure</option> or
                                 <option>always</option>, the service
                                 will be automatically restarted. The
                                 <option>on-failure</option> or
                                 <option>always</option>, the service
                                 will be automatically restarted. The
                                 <term><varname>Sockets=</varname></term>
                                 <listitem><para>Specifies the name of
                                 the socket units this service shall
                                 <term><varname>Sockets=</varname></term>
                                 <listitem><para>Specifies the name of
                                 the socket units this service shall
-                                inherit the sockets from when the
-                                service is started. Normally it
-                                should not be necessary to use this
-                                setting as all sockets whose unit
+                                inherit socket file descriptors
+                                from when the service is
+                                started. Normally it should not be
+                                necessary to use this setting as all
+                                socket file descriptors whose unit
                                 shares the same name as the service
                                 shares the same name as the service
-                                (ignoring the different suffix of course)
-                                are passed to the spawned
-                                process.</para>
-
-                                <para>Note that the same socket may be
-                                passed to multiple processes at the
-                                same time. Also note that a different
-                                service may be activated on incoming
-                                traffic than that which inherits the
-                                sockets. Or in other words: the
+                                (subject to the different unit name
+                                suffix of course) are passed to the
+                                spawned process.</para>
+
+                                <para>Note that the same socket file
+                                descriptors may be passed to multiple
+                                processes simultaneously. Also note
+                                that a different service may be
+                                activated on incoming socket traffic
+                                than the one which is ultimately
+                                configured to inherit the socket file
+                                descriptors. Or in other words: the
                                 <varname>Service=</varname> setting of
                                 <filename>.socket</filename> units
                                 does not have to match the inverse of
                                 <varname>Service=</varname> setting of
                                 <filename>.socket</filename> units
                                 does not have to match the inverse of
 
         </refsect1>
 
 
         </refsect1>
 
-        <refsect1>
-                <title>Compatibility Options</title>
-
-                <para>The following options are also available in the
-                <literal>[Service]</literal> section, but exist purely
-                for compatibility reasons and should not be used in
-                newly written service files.</para>
-
-                <variablelist class='unit-directives'>
-                        <varlistentry>
-                                <term><varname>SysVStartPriority=</varname></term>
-                                <listitem><para>Set the SysV start
-                                priority to use to order this service
-                                in relation to SysV services lacking
-                                LSB headers. This option is only
-                                necessary to fix ordering in relation
-                                to legacy SysV services that have no
-                                ordering information encoded in the
-                                script headers. As such, it should only
-                                be used as a temporary compatibility
-                                option and should not be used in new unit
-                                files. Almost always, it is a better
-                                choice to add explicit ordering
-                                directives via
-                                <varname>After=</varname> or
-                                <varname>Before=</varname>,
-                                instead. For more details, see
-                                <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
-                                If used, pass an integer value in the
-                                range 0-99.</para></listitem>
-                        </varlistentry>
-                </variablelist>
-        </refsect1>
-
         <refsect1>
                 <title>Command lines</title>
 
         <refsect1>
                 <title>Command lines</title>
 
                 contains, resulting in a single argument. Use
                 <literal>$FOO</literal> as a separate word on the
                 command line, in which case it will be replaced by the
                 contains, resulting in a single argument. Use
                 <literal>$FOO</literal> as a separate word on the
                 command line, in which case it will be replaced by the
-                value of the environment variable split at whitespace,
-                resulting in zero or more arguments. To pass a literal
-                dollar sign, use <literal>$$</literal>.  Variables
-                whose value is not known at expansion time are treated
-                as empty strings. Note that the first argument
-                (i.e. the program to execute) may not be a
-                variable.</para>
+                value of the environment variable split at whitespace
+                resulting in zero or more arguments. For this type of
+                expansion, quotes and respected when splitting into
+                words, and afterwards removed.</para>
+
+                <para>Example:</para>
+
+                <programlisting>Environment="ONE=one" 'TWO=two two'
+ExecStart=/bin/echo $ONE $TWO ${TWO}</programlisting>
+
+                <para>This will execute <command>/bin/echo</command>
+                with four arguments: <literal>one</literal>,
+                <literal>two</literal>, <literal>two</literal>, and
+                <literal>two two</literal>.</para>
+
+                <para>Example:</para>
+                <programlisting>Environment=ONE='one' "TWO='two two' too" THREE=
+ExecStart=/bin/echo ${ONE} ${TWO} ${THREE}
+ExecStart=/bin/echo $ONE $TWO $THREE</programlisting>
+                <para>This results in <filename>echo</filename> being
+                called twice, the first time with arguments
+                <literal>'one'</literal>,
+                <literal>'two two' too</literal>, <literal></literal>,
+                and the second time with arguments
+                <literal>one</literal>, <literal>two two</literal>,
+                <literal>too</literal>.
+                </para>
+
+                <para>To pass a literal dollar sign, use
+                <literal>$$</literal>. Variables whose value is not
+                known at expansion time are treated as empty
+                strings. Note that the first argument (i.e. the
+                program to execute) may not be a variable.</para>
 
                 <para>Variables to be used in this fashion may be
                 defined through <varname>Environment=</varname> and
 
                 <para>Variables to be used in this fashion may be
                 defined through <varname>Environment=</varname> and
                 <literal>&gt;/dev/null</literal>,
                 <literal>&amp;</literal>, <literal>;</literal>, and
                 <literal>/bin/ls</literal>.</para>
                 <literal>&gt;/dev/null</literal>,
                 <literal>&amp;</literal>, <literal>;</literal>, and
                 <literal>/bin/ls</literal>.</para>
-
-                <para>Example:</para>
-
-                <programlisting>Environment="ONE=one" 'TWO=two two'
-ExecStart=/bin/echo $ONE $TWO ${TWO}</programlisting>
-
-                <para>This will execute <command>/bin/echo</command>
-                with four arguments: <literal>one</literal>,
-                <literal>two</literal>, <literal>two</literal>, and
-                <literal>two two</literal>.</para>
         </refsect1>
 
         <refsect1>
         </refsect1>
 
         <refsect1>