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