2011-02-13 22:08:15 +08:00
|
|
|
<?xml version='1.0'?> <!--*-nxml-*-->
|
2019-03-14 21:40:58 +08:00
|
|
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
2015-06-19 01:47:44 +08:00
|
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
2020-11-09 12:23:58 +08:00
|
|
|
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
|
2011-02-13 22:08:15 +08:00
|
|
|
|
2014-02-14 03:33:51 +08:00
|
|
|
<refentry id="systemd-tmpfiles"
|
2015-02-04 10:14:13 +08:00
|
|
|
xmlns:xi="http://www.w3.org/2001/XInclude">
|
|
|
|
|
|
|
|
<refentryinfo>
|
|
|
|
<title>systemd-tmpfiles</title>
|
|
|
|
<productname>systemd</productname>
|
|
|
|
</refentryinfo>
|
|
|
|
|
|
|
|
<refmeta>
|
|
|
|
<refentrytitle>systemd-tmpfiles</refentrytitle>
|
|
|
|
<manvolnum>8</manvolnum>
|
|
|
|
</refmeta>
|
|
|
|
|
|
|
|
<refnamediv>
|
|
|
|
<refname>systemd-tmpfiles</refname>
|
|
|
|
<refname>systemd-tmpfiles-setup.service</refname>
|
|
|
|
<refname>systemd-tmpfiles-setup-dev.service</refname>
|
|
|
|
<refname>systemd-tmpfiles-clean.service</refname>
|
|
|
|
<refname>systemd-tmpfiles-clean.timer</refname>
|
|
|
|
<refpurpose>Creates, deletes and cleans up volatile
|
|
|
|
and temporary files and directories</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
|
|
|
|
<refsynopsisdiv>
|
|
|
|
<cmdsynopsis>
|
|
|
|
<command>systemd-tmpfiles</command>
|
|
|
|
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
|
|
|
<arg choice="opt" rep="repeat"><replaceable>CONFIGFILE</replaceable></arg>
|
|
|
|
</cmdsynopsis>
|
|
|
|
|
2017-11-23 17:54:29 +08:00
|
|
|
<para>System units:
|
|
|
|
<literallayout><filename>systemd-tmpfiles-setup.service</filename>
|
|
|
|
<filename>systemd-tmpfiles-setup-dev.service</filename>
|
|
|
|
<filename>systemd-tmpfiles-clean.service</filename>
|
|
|
|
<filename>systemd-tmpfiles-clean.timer</filename></literallayout></para>
|
|
|
|
|
|
|
|
<para>User units:
|
|
|
|
<literallayout><filename>systemd-tmpfiles-setup.service</filename>
|
|
|
|
<filename>systemd-tmpfiles-clean.service</filename>
|
|
|
|
<filename>systemd-tmpfiles-clean.timer</filename></literallayout></para>
|
2015-02-04 10:14:13 +08:00
|
|
|
</refsynopsisdiv>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
|
|
|
|
<para><command>systemd-tmpfiles</command> creates, deletes, and
|
|
|
|
cleans up volatile and temporary files and directories, based on
|
|
|
|
the configuration file format and location specified in
|
|
|
|
<citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
|
|
|
</para>
|
|
|
|
|
2016-04-20 10:34:04 +08:00
|
|
|
<para>If invoked with no arguments, it applies all directives from all configuration
|
2018-02-05 21:53:11 +08:00
|
|
|
files. When invoked with <option>--replace=<replaceable>PATH</replaceable></option>,
|
|
|
|
arguments specified on the command line are used instead of the configuration file
|
|
|
|
<replaceable>PATH</replaceable>. Otherwise, if one or more absolute filenames are
|
|
|
|
passed on the command line, only the directives in these files are applied. If
|
|
|
|
<literal>-</literal> is specified instead of a filename, directives are read from
|
|
|
|
standard input. If only the basename of a configuration file is specified, all
|
|
|
|
configuration directories as specified in
|
2015-02-04 10:14:13 +08:00
|
|
|
<citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
2018-02-05 21:53:11 +08:00
|
|
|
are searched for a matching file and the file found that has the highest priority is
|
|
|
|
executed.</para>
|
2019-05-21 23:08:35 +08:00
|
|
|
|
|
|
|
<para>System services (<filename>systemd-tmpfiles-setup.service</filename>,
|
|
|
|
<filename>systemd-tmpfiles-setup-dev.service</filename>,
|
|
|
|
<filename>systemd-tmpfiles-clean.service</filename>) invoke <command>systemd-tmpfiles</command> to create
|
|
|
|
system files and to perform system wide cleanup. Those services read administrator-controlled
|
|
|
|
configuration files in <filename>tmpfiles.d/</filename> directories. User services
|
|
|
|
(<filename>systemd-tmpfiles-setup.service</filename>,
|
|
|
|
<filename>systemd-tmpfiles-clean.service</filename>) also invoke <command>systemd-tmpfiles</command>, but
|
|
|
|
it reads a separate set of files, which includes user-controlled files under
|
|
|
|
<filename>~/.config/user-tmpfiles.d/</filename> and <filename>~/.local/share/user-tmpfiles.d/</filename>,
|
2020-08-20 00:36:32 +08:00
|
|
|
and administrator-controlled files under <filename>/usr/share/user-tmpfiles.d/</filename>. Users may use
|
2019-05-21 23:08:35 +08:00
|
|
|
this to create and clean up files under their control, but the system instance performs global cleanup
|
|
|
|
and is not influenced by user configuration. Note that this means a time-based cleanup configured in the
|
2020-10-06 00:08:21 +08:00
|
|
|
system instance, such as the one typically configured for <filename>/tmp/</filename>, will thus also
|
|
|
|
affect files created by the user instance if they are placed in <filename>/tmp/</filename>, even if the
|
2019-05-21 23:08:35 +08:00
|
|
|
user instance's time-based cleanup is turned off.</para>
|
2015-02-04 10:14:13 +08:00
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>Options</title>
|
|
|
|
|
|
|
|
<para>The following options are understood:</para>
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--create</option></term>
|
|
|
|
<listitem><para>If this option is passed, all files and
|
|
|
|
directories marked with
|
|
|
|
<varname>f</varname>,
|
|
|
|
<varname>F</varname>,
|
|
|
|
<varname>w</varname>,
|
|
|
|
<varname>d</varname>,
|
|
|
|
<varname>D</varname>,
|
|
|
|
<varname>v</varname>,
|
|
|
|
<varname>p</varname>,
|
|
|
|
<varname>L</varname>,
|
|
|
|
<varname>c</varname>,
|
|
|
|
<varname>b</varname>,
|
|
|
|
<varname>m</varname>
|
|
|
|
in the configuration files are created or written to. Files
|
|
|
|
and directories marked with
|
|
|
|
<varname>z</varname>,
|
|
|
|
<varname>Z</varname>,
|
|
|
|
<varname>t</varname>,
|
|
|
|
<varname>T</varname>,
|
|
|
|
<varname>a</varname>, and
|
|
|
|
<varname>A</varname> have their ownership, access mode and
|
2017-11-23 18:20:29 +08:00
|
|
|
security labels set.</para></listitem>
|
2015-02-04 10:14:13 +08:00
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--clean</option></term>
|
|
|
|
<listitem><para>If this option is passed, all files and
|
|
|
|
directories with an age parameter configured will be cleaned
|
|
|
|
up.</para></listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term><option>--remove</option></term>
|
|
|
|
<listitem><para>If this option is passed, the contents of
|
|
|
|
directories marked with <varname>D</varname> or
|
|
|
|
<varname>R</varname>, and files or directories themselves
|
|
|
|
marked with <varname>r</varname> or <varname>R</varname> are
|
|
|
|
removed.</para></listitem>
|
|
|
|
</varlistentry>
|
2017-11-22 21:13:32 +08:00
|
|
|
|
2017-11-23 18:20:29 +08:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>--user</option></term>
|
|
|
|
<listitem><para>Execute "user" configuration, i.e. <filename>tmpfiles.d</filename>
|
|
|
|
files in user configuration directories.</para></listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2015-02-04 10:14:13 +08:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>--boot</option></term>
|
|
|
|
<listitem><para>Also execute lines with an exclamation mark.
|
|
|
|
</para></listitem>
|
|
|
|
</varlistentry>
|
2017-11-22 21:13:32 +08:00
|
|
|
|
2015-02-04 10:14:13 +08:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>--prefix=<replaceable>path</replaceable></option></term>
|
|
|
|
<listitem><para>Only apply rules with paths that start with
|
|
|
|
the specified prefix. This option can be specified multiple
|
|
|
|
times.</para></listitem>
|
|
|
|
</varlistentry>
|
2020-07-28 23:52:23 +08:00
|
|
|
|
2015-02-04 10:14:13 +08:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>--exclude-prefix=<replaceable>path</replaceable></option></term>
|
|
|
|
<listitem><para>Ignore rules with paths that start with the
|
|
|
|
specified prefix. This option can be specified multiple
|
|
|
|
times.</para></listitem>
|
|
|
|
</varlistentry>
|
2017-11-16 11:00:56 +08:00
|
|
|
|
2020-07-28 23:52:23 +08:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>-E</option></term>
|
|
|
|
<listitem><para>A shortcut for <literal>--exclude-prefix=/dev --exclude-prefix=/proc
|
|
|
|
--exclude-prefix=/run --exclude-prefix=/sys</literal>, i.e. exclude the hierarchies typically backed
|
|
|
|
by virtual or memory file systems. This is useful in combination with <option>--root=</option>, if
|
|
|
|
the specified directory tree contains an OS tree without these virtual/memory file systems mounted
|
|
|
|
in, as it is typically not desirable to create any files and directories below these subdirectories
|
|
|
|
if they are supposed to be overmounted during runtime.</para></listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2015-02-04 10:14:13 +08:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>--root=<replaceable>root</replaceable></option></term>
|
2017-11-16 11:00:56 +08:00
|
|
|
<listitem><para>Takes a directory path as an argument. All paths will be prefixed with the given alternate
|
|
|
|
<replaceable>root</replaceable> path, including config search paths.</para>
|
|
|
|
|
2020-05-06 05:23:00 +08:00
|
|
|
<para>When this option is used, the libc Name Service Switch (NSS) is bypassed for resolving users
|
|
|
|
and groups. Instead the files <filename>/etc/passwd</filename> and <filename>/etc/group</filename>
|
|
|
|
inside the alternate root are read directly. This means that users/groups not listed in these files
|
2020-07-28 23:52:23 +08:00
|
|
|
will not be resolved, i.e. LDAP NIS and other complex databases are not considered.</para>
|
|
|
|
|
|
|
|
<para>Consider combining this with <option>-E</option> to ensure the invocation does not create files
|
|
|
|
or directories below mount points in the OS image operated on that are typically overmounted during
|
|
|
|
runtime.</para></listitem>
|
2015-02-04 10:14:13 +08:00
|
|
|
</varlistentry>
|
|
|
|
|
2020-07-29 01:28:43 +08:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>--image=<replaceable>image</replaceable></option></term>
|
|
|
|
|
|
|
|
<listitem><para>Takes a path to a disk image file or block device node. If specified all operations
|
|
|
|
are applied to file system in the indicated disk image. This is similar to <option>--root=</option>
|
|
|
|
but operates on file systems stored in disk images or block devices. The disk image should either
|
|
|
|
contain just a file system or a set of file systems within a GPT partition table, following the
|
|
|
|
<ulink url="https://systemd.io/DISCOVERABLE_PARTITIONS">Discoverable Partitions
|
|
|
|
Specification</ulink>. For further information on supported disk images, see
|
|
|
|
<citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
|
|
|
|
switch of the same name.</para>
|
|
|
|
|
|
|
|
<para>Implies <option>-E</option>.</para></listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2018-02-05 21:53:11 +08:00
|
|
|
<varlistentry>
|
|
|
|
<term><option>--replace=<replaceable>PATH</replaceable></option></term>
|
|
|
|
<listitem><para>When this option is given, one ore more positional arguments
|
|
|
|
must be specified. All configuration files found in the directories listed in
|
|
|
|
<citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
|
|
will be read, and the configuration given on the command line will be
|
|
|
|
handled instead of and with the same priority as the configuration file
|
|
|
|
<replaceable>PATH</replaceable>.</para>
|
|
|
|
|
|
|
|
<para>This option is intended to be used when package installation scripts
|
|
|
|
are running and files belonging to that package are not yet available on
|
|
|
|
disk, so their contents must be given on the command line, but the admin
|
|
|
|
configuration might already exist and should be given higher priority.
|
|
|
|
</para></listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2018-04-27 01:07:54 +08:00
|
|
|
<xi:include href="standard-options.xml" xpointer="cat-config" />
|
2018-06-12 21:37:53 +08:00
|
|
|
<xi:include href="standard-options.xml" xpointer="no-pager" />
|
2015-02-04 10:14:13 +08:00
|
|
|
<xi:include href="standard-options.xml" xpointer="help" />
|
|
|
|
<xi:include href="standard-options.xml" xpointer="version" />
|
|
|
|
</variablelist>
|
|
|
|
|
2018-10-30 02:40:42 +08:00
|
|
|
<para>It is possible to combine <option>--create</option>, <option>--clean</option>, and <option>--remove</option>
|
2019-05-21 23:08:35 +08:00
|
|
|
in one invocation (in which case removal and cleanup are executed before creation of new files). For example,
|
2018-10-30 02:40:42 +08:00
|
|
|
during boot the following command line is executed to ensure that all temporary and volatile directories are
|
2015-02-04 10:14:13 +08:00
|
|
|
removed and created according to the configuration file:</para>
|
|
|
|
|
|
|
|
<programlisting>systemd-tmpfiles --remove --create</programlisting>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>Unprivileged --cleanup operation</title>
|
|
|
|
|
|
|
|
<para><command>systemd-tmpfiles</command> tries to avoid changing
|
|
|
|
the access and modification times on the directories it accesses,
|
2018-02-09 10:05:49 +08:00
|
|
|
which requires <constant>CAP_FOWNER</constant> privileges. When
|
2015-02-04 10:14:13 +08:00
|
|
|
running as non-root, directories which are checked for files to
|
|
|
|
clean up will have their access time bumped, which might prevent
|
|
|
|
their cleanup.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>Exit status</title>
|
|
|
|
|
2018-03-29 22:19:33 +08:00
|
|
|
<para>On success, 0 is returned. If the configuration was syntactically invalid (syntax errors,
|
|
|
|
missing arguments, …), so some lines had to be ignored, but no other errors occurred,
|
2017-11-22 21:13:32 +08:00
|
|
|
<constant>65</constant> is returned (<constant>EX_DATAERR</constant> from
|
2018-03-29 22:19:33 +08:00
|
|
|
<filename>/usr/include/sysexits.h</filename>). If the configuration was syntactically valid, but
|
|
|
|
could not be executed (lack of permissions, creation of files in missing directories, invalid
|
|
|
|
contents when writing to <filename>/sys/</filename> values, …), <constant>73</constant> is
|
2018-05-22 22:56:53 +08:00
|
|
|
returned (<constant>EX_CANTCREAT</constant> from <filename>/usr/include/sysexits.h</filename>).
|
2018-03-29 22:19:33 +08:00
|
|
|
Otherwise, <constant>1</constant> is returned (<constant>EXIT_FAILURE</constant> from
|
|
|
|
<filename>/usr/include/stdlib.h</filename>).
|
2017-11-22 21:13:32 +08:00
|
|
|
</para>
|
2015-02-04 10:14:13 +08:00
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>See Also</title>
|
|
|
|
<para>
|
|
|
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
|
|
|
<citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
2011-02-13 22:08:15 +08:00
|
|
|
|
|
|
|
</refentry>
|