| <?xml version="1.0"?> |
| <!--*-nxml-*--> |
| <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> |
| <!-- |
| This file is part of systemd. |
| |
| Copyright 2010 Brandon Philips |
| |
| systemd is free software; you can redistribute it and/or modify it |
| under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 2 of the License, or |
| (at your option) any later version. |
| |
| systemd is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with systemd; If not, see <http://www.gnu.org/licenses/>. |
| --> |
| <refentry id="tmpfiles.d"> |
| |
| <refentryinfo> |
| <title>tmpfiles.d</title> |
| <productname>systemd</productname> |
| |
| <authorgroup> |
| <author> |
| <contrib>Documentation</contrib> |
| <firstname>Brandon</firstname> |
| <surname>Philips</surname> |
| <email>brandon@ifup.org</email> |
| </author> |
| </authorgroup> |
| </refentryinfo> |
| |
| <refmeta> |
| <refentrytitle>tmpfiles.d</refentrytitle> |
| <manvolnum>5</manvolnum> |
| </refmeta> |
| |
| <refnamediv> |
| <refname>tmpfiles.d</refname> |
| <refpurpose>Configuration for creation, deletion and |
| cleaning of volatile and temporary files</refpurpose> |
| </refnamediv> |
| |
| <refsynopsisdiv> |
| <para><filename>/usr/lib/tmpfiles.d/*.conf</filename></para> |
| <para><filename>/etc/tmpfiles.d/*.conf</filename></para> |
| <para><filename>/run/tmpfiles.d/*.conf</filename></para> |
| </refsynopsisdiv> |
| |
| <refsect1> |
| <title>Description</title> |
| |
| <para><command>systemd-tmpfiles</command> uses the |
| configuration files from the above directories to describe the |
| creation, cleaning and removal of volatile and |
| temporary files and directories which usually reside |
| in directories such as <filename>/run</filename> |
| or <filename>/tmp</filename>.</para> |
| </refsect1> |
| |
| <refsect1> |
| <title>Configuration Format</title> |
| |
| <para>Each configuration file is named in the style of |
| <filename><program>.conf</filename>. |
| Files in <filename>/etc/</filename> overwrite |
| files with the same name in <filename>/usr/lib/</filename>. |
| Files in <filename>/run</filename> overwrite files with |
| the same name in <filename>/etc/</filename> and |
| <filename>/usr/lib/</filename>. Packages should install their |
| configuration files in <filename>/usr/lib/</filename>, files |
| in <filename>/etc/</filename> are reserved for the local |
| administration, which possibly decides to overwrite the |
| configurations installed from packages. All files are sorted |
| by filename in alphabetical order, regardless in which of the |
| directories they reside, to ensure that a specific |
| configuration file takes precedence over another file with |
| an alphabetically later name.</para> |
| |
| <para>The configuration format is one line per path |
| containing action, mode, ownership and age |
| fields:</para> |
| |
| <programlisting>Type Path Mode UID GID Age |
| d /run/user 0755 root root 10d</programlisting> |
| |
| <refsect2> |
| <title>Type</title> |
| <variablelist> |
| <varlistentry> |
| <term><varname>f</varname></term> |
| <listitem><para>Create a file if it doesn't exist yet</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>F</varname></term> |
| <listitem><para>Create or truncate a file</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>d</varname></term> |
| <listitem><para>Create a directory if it doesn't exist yet</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>D</varname></term> |
| <listitem><para>Create or empty a directory</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>p</varname></term> |
| <listitem><para>Create a named pipe (FIFO) if it doesn't exist yet</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>x</varname></term> |
| <listitem><para>Ignore a path |
| during cleaning. Use this type |
| to exclude paths from clean-up |
| as controlled with the Age |
| parameter. Note that lines of |
| this type do not influence the |
| effect of r or R lines. Lines |
| of this type accept |
| shell-style globs in place of |
| of normal path |
| names.</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>r</varname></term> |
| <listitem><para>Remove a file |
| or directory if it |
| exists. This may not be used |
| to remove non-empty |
| directories, use R for |
| that. Lines of this type |
| accept shell-style globs in |
| place of normal path |
| names.</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>R</varname></term> |
| <listitem><para>Recursively |
| remove a path and all its |
| subdirectories (if it is a |
| directory). Lines of this type |
| accept shell-style globs in |
| place of normal path |
| names.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| </refsect2> |
| |
| <refsect2> |
| <title>Mode</title> |
| |
| <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 |
| directories, 0644 for files. This parameter is |
| ignored for x, r, R lines.</para> |
| </refsect2> |
| |
| <refsect2> |
| <title>UID, GID</title> |
| |
| <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. . These parameters are ignored for x, |
| r, R lines.</para> |
| </refsect2> |
| |
| <refsect2> |
| <title>Age</title> |
| <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 |
| field format is a series of integers each |
| followed by one of the following |
| postfixes for the respective time units:</para> |
| |
| <variablelist> |
| <varlistentry> |
| <term><varname>s</varname></term> |
| <term><varname>min</varname></term> |
| <term><varname>h</varname></term> |
| <term><varname>d</varname></term> |
| <term><varname>w</varname></term> |
| <term><varname>ms</varname></term> |
| <term><varname>m</varname></term> |
| <term><varname>us</varname></term></varlistentry> |
| </variablelist> |
| |
| <para>If multiple integers and units are specified the time |
| values are summed up.</para> |
| |
| <para>The age field only applies to lines starting with |
| d, D and x. If omitted or set to - no automatic clean-up |
| is done.</para> |
| </refsect2> |
| |
| </refsect1> |
| |
| <refsect1> |
| <title>Example</title> |
| <example> |
| <title>/etc/tmpfiles.d/screen.conf example</title> |
| <para><command>screen</command> needs two directories created at boot with specific modes and ownership.</para> |
| |
| <programlisting>d /var/run/screens 1777 root root 10d |
| d /var/run/uscreens 0755 root root 10d12h</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> |
| </para> |
| </refsect1> |
| |
| </refentry> |