administrator, who may use this logic to override the
configuration files installed by vendor packages. All
configuration files are sorted by their filename in
- alphabetical order, regardless in which of the
- directories they reside, to guarantee that a specific
- configuration file takes precedence over another file
- with an alphabetically later name</para>
+ lexicographic order, regardless in which of the
+ directories they reside. If multiple files specify the
+ same path, the entry in the file with the lexicographically
+ earliest name will be applied, all all other conflicting
+ entries logged as errors.</para>
<para>If the administrator wants to disable a
- configuration file supplied by the vendor the
+ configuration file supplied by the vendor, the
recommended way is to place a symlink to
<filename>/dev/null</filename> in
<filename>/etc/tmpfiles.d/</filename> bearing the
- same file name.</para>
+ same filename.</para>
<para>The configuration format is one line per path
containing action, path, mode, ownership, age and argument
<variablelist>
<varlistentry>
<term><varname>f</varname></term>
- <listitem><para>Create a file if it doesn't exist yet (optionally writing a short string into it, if the argument parameter is passed)</para></listitem>
+ <listitem><para>Create a file if it does not exist yet (optionally writing a short string into it, if the argument parameter is passed)</para></listitem>
</varlistentry>
<varlistentry>
<varlistentry>
<term><varname>w</varname></term>
- <listitem><para>Write the argument parameter to a file, if it exists.</para></listitem>
+ <listitem><para>Write the argument parameter to a file, if the file exists.
+ Lines of this type accept shell-style globs in place of normal path
+ names. The argument parameter will be written without a trailing
+ newline. C-style backslash escapes are interpreted.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>d</varname></term>
- <listitem><para>Create a directory if it doesn't exist yet</para></listitem>
+ <listitem><para>Create a directory if it does not exist yet</para></listitem>
</varlistentry>
<varlistentry>
<varlistentry>
<term><varname>p</varname></term>
- <listitem><para>Create a named pipe (FIFO) if it doesn't exist yet</para></listitem>
+ <listitem><para>Create a named pipe (FIFO) if it does not exist yet</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>L</varname></term>
- <listitem><para>Create a symlink if it doesn't exist yet</para></listitem>
+ <listitem><para>Create a symlink if it does not exist yet</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>c</varname></term>
- <listitem><para>Create a character device node if it doesn't exist yet</para></listitem>
+ <listitem><para>Create a character device node if it does not exist yet</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>b</varname></term>
- <listitem><para>Create a block device node if it doesn't exist yet</para></listitem>
+ <listitem><para>Create a block device node if it does not exist yet</para></listitem>
</varlistentry>
<varlistentry>
effect of r or R lines. Lines
of this type accept
shell-style globs in place of
- of normal path
+ normal path
+ names.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>X</varname></term>
+ <listitem><para>Ignore a path
+ during cleanup. Use this type
+ to prevent path removal as
+ controlled with the Age parameter.
+ Note that if path is a directory,
+ content of a directory is not
+ excluded from clean-up, only
+ directory itself. Lines of this
+ type accept shell-style globs
+ in place of normal path
names.</para></listitem>
</varlistentry>
<para>The file access mode to use when
creating this file or directory. If omitted or
- when set to - the default is used: 0755 for
+ when set to -, the default is used: 0755 for
directories, 0644 for all other file
- objects. For z, Z lines if omitted or when set
- to - the file access mode will not be
+ objects. For z, Z lines, if omitted or when set
+ to -, the file access mode will not be
modified. This parameter is ignored for x, r,
R, L lines.</para>
</refsect2>
<para>The user and group to use for this file
or directory. This may either be a numeric
user/group ID or a user or group name. If
- omitted or when set to - the default 0 (root)
- is used. For z, Z lines when omitted or when set to -
+ omitted or when set to -, the default 0 (root)
+ is used. For z, Z lines, when omitted or when set to -,
the file ownership will not be modified.
These parameters are ignored for x, r, R, L lines.</para>
</refsect2>
<para>The date field, when set, is used to
decide what files to delete when cleaning. If
a file or directory is older than the current
- time minus the age field it is deleted. The
+ time minus the age field, it is deleted. The
field format is a series of integers each
followed by one of the following
postfixes for the respective time units:</para>
<term><varname>us</varname></term></varlistentry>
</variablelist>
- <para>If multiple integers and units are specified the time
- values are summed up.</para>
+ <para>If multiple integers and units are specified, the time
+ values are summed up. If an integer is given without a unit,
+ s is assumed.
+ </para>
+
+ <para>When the age is set to zero, the files are cleaned
+ unconditionally.</para>
<para>The age field only applies to lines starting with
- d, D and x. If omitted or set to - no automatic clean-up
+ d, D and x. If omitted or set to -, no automatic clean-up
is done.</para>
<para>If the age field starts with a tilde
- character (~) the clean-up is only applied to
+ character (~), the clean-up is only applied to
files and directories one level inside the
directory specified, but not the files and
directories immediately inside it.</para>
<programlisting>d /var/run/screens 1777 root root 10d
d /var/run/uscreens 0755 root root 10d12h</programlisting>
</example>
+ <example>
+ <title>/etc/tmpfiles.d/abrt.conf example</title>
+ <para><command>abrt</command> needs a directory created at boot with specific mode and ownership and its content should be preserved.</para>
+
+ <programlisting>d /var/tmp/abrt 0755 abrt abrt
+x /var/tmp/abrt/*</programlisting>
+ </example>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>