chiark / gitweb /
tmpfiles: add new "C" line for copying files or directories
[elogind.git] / man / tmpfiles.d.xml
index 0da52aedadf32b0f7665cde07d7c51cc9862fa9b..20ed803a527653565f0c15dfdc02641d4f76c5df 100644 (file)
                 temporary files and directories which usually reside
                 in directories such as <filename>/run</filename>
                 or <filename>/tmp</filename>.</para>
+
+                <para>Volatile and temporary files and directories are
+                those located in <filename>/run</filename> (and its
+                alias <filename>/var/run</filename>),
+                <filename>/tmp</filename>,
+                <filename>/var/tmp</filename>, the API file systems
+                such as <filename>/sys</filename> or
+                <filename>/proc</filename>, as well as some other
+                directories below <filename>/var</filename>.</para>
+
+                <para>System daemons frequently require private
+                runtime directories below <filename>/run</filename> to
+                place communication sockets and similar in. For these,
+                consider declaring them in their unit files using
+                <varname>RuntimeDirectory=</varname>
+                (see <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details),
+                if this is feasible.</para>
         </refsect1>
 
         <refsect1>
                 the local administrator, who may use this logic to
                 override the configuration files installed by vendor
                 packages. All configuration files are sorted by their
-                filename in lexicographic order, regardless in which
-                of the directories they reside. If multiple files
+                filename in lexicographic order, regardless of which
+                of the directories they reside in. If multiple files
                 specify the same path, the entry in the file with the
                 lexicographically earliest name will be applied, all
                 all other conflicting entries logged as errors.</para>
 d    /run/user   0755 root root 10d -
 L    /tmp/foobar -    -    -    -   /dev/null</programlisting>
 
-
                 <refsect2>
                         <title>Type</title>
 
@@ -167,6 +183,11 @@ L    /tmp/foobar -    -    -    -   /dev/null</programlisting>
                                         <listitem><para>Create a block device node if it does not exist yet.</para></listitem>
                                 </varlistentry>
 
+                                <varlistentry>
+                                        <term><varname>C</varname></term>
+                                        <listitem><para>Recursively copy a file or directory, if the destination files or directories don't exist yet.</para></listitem>
+                                </varlistentry>
+
                                 <varlistentry>
                                         <term><varname>m</varname></term>
                                         <listitem><para>If the
@@ -174,7 +195,7 @@ L    /tmp/foobar -    -    -    -   /dev/null</programlisting>
                                         adjust its access mode, group
                                         and user to the specified
                                         values and reset the SELinux
-                                        label. If it does not exist, do
+                                        security context. If it does not exist, do
                                         nothing.</para></listitem>
                                 </varlistentry>
 
@@ -242,7 +263,7 @@ L    /tmp/foobar -    -    -    -   /dev/null</programlisting>
                                 <varlistentry>
                                         <term><varname>z</varname></term>
                                         <listitem><para>Restore
-                                        SELinux security context label
+                                        SELinux security context
                                         and set ownership and access
                                         mode of a file or directory if
                                         it exists.  Lines of this type
@@ -255,7 +276,7 @@ L    /tmp/foobar -    -    -    -   /dev/null</programlisting>
                                         <term><varname>Z</varname></term>
                                         <listitem><para>Recursively
                                         restore SELinux security
-                                        context label and set
+                                        context and set
                                         ownership and access mode of a
                                         path and all its
                                         subdirectories (if it is a
@@ -273,20 +294,18 @@ L    /tmp/foobar -    -    -    -   /dev/null</programlisting>
                         execute at any time, e.g. on package upgrades.
                         <command>systemd-tmpfiles</command> will
                         execute line with an exclamation mark only if
-                        option <option>--unsafe</option> is given.
+                        option <option>--boot</option> is given.
                         </para>
 
                         <para>For example:
-                        <programlisting>
-# Make sure these are created by default so that nobody else can
+                        <programlisting># Make sure these are created by default so that nobody else can
 d /tmp/.X11-unix 1777 root root 10d
 
 # Unlink the X11 lock files
-r! /tmp/.X[0-9]*-lock
-                        </programlisting>
+r! /tmp/.X[0-9]*-lock</programlisting>
                         The second line in contrast to the first one
                         would break a running system, and will only be
-                        executed with <option>--unsafe</option>.</para>
+                        executed with <option>--boot</option>.</para>
                 </refsect2>
 
                 <refsect2>
@@ -432,8 +451,10 @@ r! /tmp/.X[0-9]*-lock
                         <varname>f</varname>, <varname>F</varname>,
                         and <varname>w</varname> may be used to
                         specify a short string that is written to the
-                        file, suffixed by a newline. Ignored for all
-                        other lines.</para>
+                        file, suffixed by a newline. For
+                        <varname>C</varname> specifies the source file
+                        or directory. Ignored for all other
+                        lines.</para>
                 </refsect2>
 
         </refsect1>
@@ -444,8 +465,8 @@ r! /tmp/.X[0-9]*-lock
                         <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>
+                        <programlisting>d /run/screens  1777 root root 10d
+d /run/uscreens 0755 root root 10d12h</programlisting>
                 </example>
                 <example>
                         <title>/etc/tmpfiles.d/abrt.conf example</title>
@@ -461,7 +482,8 @@ x /var/tmp/abrt/*</programlisting>
                 <para>
                         <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
-                        <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+                        <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+                        <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
                 </para>
         </refsect1>