<?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>/etc/tmpfiles.d/*.conf</filename></para>
        </refsynopsisdiv>

        <refsect1>
                <title>Description</title>

		<para><command>systemd-tmpfiles</command> uses the
		configuration files in
		<filename>/etc/tmpfiles.d/</filename> to describe the
		creation, cleaning and removal of volatile and
		temporary files and directories which usually reside
		in directories such as <filename>/var/run</filename>
		or <filename>/tmp</filename>. Each configuration file
		is named in the style of
		<filename>/etc/tmpfiles.d/&lt;program&gt;.conf</filename>.</para>
        </refsect1>

        <refsect1>
		<title>Configuration Format</title>

		<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    /var/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>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>