blob: 8568fcd59c5635567c98815a530c16c5e633d6cc [file] [log] [blame] [raw]
<?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>/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 /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>