]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - man/systemd.path.xml
Merge pull request #16343 from jirislaby/master
[thirdparty/systemd.git] / man / systemd.path.xml
index dc218853091e05d9bc7bac8340efd7ccd2f5ff67..f6fe3d83883eca518563535f522ed27c3d169503 100644 (file)
@@ -1,28 +1,12 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-
-<!--
-  SPDX-License-Identifier: LGPL-2.1+
-
-  This file is part of systemd.
-
-  Copyright 2010 Lennart Poettering
--->
+<!-- SPDX-License-Identifier: LGPL-2.1+ -->
 
 <refentry id="systemd.path">
   <refentryinfo>
     <title>systemd.path</title>
     <productname>systemd</productname>
-
-    <authorgroup>
-      <author>
-        <contrib>Developer</contrib>
-        <firstname>Lennart</firstname>
-        <surname>Poettering</surname>
-        <email>lennart@poettering.net</email>
-      </author>
-    </authorgroup>
   </refentryinfo>
 
   <refmeta>
@@ -50,9 +34,9 @@
     this unit type. See
     <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
     for the common options of all unit configuration files. The common
-    configuration items are configured in the generic [Unit] and
-    [Install] sections. The path specific configuration options are
-    configured in the [Path] section.</para>
+    configuration items are configured in the generic <literal>[Unit]</literal> and
+    <literal>[Install]</literal> sections. The path specific configuration options are
+    configured in the <literal>[Path]</literal> section.</para>
 
     <para>For each path file, a matching unit file must exist,
     describing the unit to activate when the path changes. By default,
     limitations as inotify, and for example cannot be used to monitor
     files or directories changed by other machines on remote NFS file
     systems.</para>
+
+    <para>When a service unit triggered by a path unit terminates (regardless whether it exited successfully
+    or failed), monitored paths are checked immediately again, and the service accordingly restarted
+    instantly. As protection against busy looping in this trigger/start cycle, a start rate limit is enforced
+    on the service unit, see <varname>StartLimitIntervalSec=</varname> and
+    <varname>StartLimitBurst=</varname> in
+    <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Unlike
+    other service failures, the error condition that the start rate limit is hit is propagated from the
+    service unit to the path unit and causes the path unit to fail as well, thus ending the loop.</para>
   </refsect1>
 
   <refsect1>
-    <title>Implicit Dependencies</title>
+    <title>Automatic Dependencies</title>
 
-    <para>The following dependencies are implicitly added:</para>
+    <refsect2>
+      <title>Implicit Dependencies</title>
 
-    <itemizedlist>
-      <listitem><para>If a path unit is beneath another mount unit in the file
-      system hierarchy, both a requirement and an ordering dependency
-      between both units are created automatically.</para></listitem>
+      <para>The following dependencies are implicitly added:</para>
 
-      <listitem><para>An implicit <varname>Before=</varname> dependency is added
-      between a path unit and the unit it is supposed to activate.</para></listitem>
-    </itemizedlist>
-  </refsect1>
+      <itemizedlist>
+        <listitem><para>If a path unit is beneath another mount unit in the file
+        system hierarchy, both a requirement and an ordering dependency
+        between both units are created automatically.</para></listitem>
 
-  <refsect1>
-    <title>Default Dependencies</title>
+        <listitem><para>An implicit <varname>Before=</varname> dependency is added
+        between a path unit and the unit it is supposed to activate.</para></listitem>
+      </itemizedlist>
+    </refsect2>
+
+    <refsect2>
+      <title>Default Dependencies</title>
 
-    <para>The following dependencies are added unless <varname>DefaultDependencies=no</varname> is set:</para>
+      <para>The following dependencies are added unless <varname>DefaultDependencies=no</varname> is set:</para>
 
-    <itemizedlist>
-      <listitem><para>Path units will automatically have dependencies of type <varname>Before=</varname> on
-      <filename>paths.target</filename>,
-      dependencies of type <varname>After=</varname> and <varname>Requires=</varname> on
-      <filename>sysinit.target</filename>, and have dependencies of type <varname>Conflicts=</varname> and
-      <varname>Before=</varname> on <filename>shutdown.target</filename>. These ensure that path units are terminated
-      cleanly prior to system shutdown. Only path units involved with early boot or late system shutdown should
-      disable <varname>DefaultDependencies=</varname> option.</para></listitem>
-    </itemizedlist>
+      <itemizedlist>
+        <listitem><para>Path units will automatically have dependencies of type <varname>Before=</varname> on
+        <filename>paths.target</filename>,
+        dependencies of type <varname>After=</varname> and <varname>Requires=</varname> on
+        <filename>sysinit.target</filename>, and have dependencies of type <varname>Conflicts=</varname> and
+        <varname>Before=</varname> on <filename>shutdown.target</filename>. These ensure that path units are terminated
+        cleanly prior to system shutdown. Only path units involved with early boot or late system shutdown should
+        disable <varname>DefaultDependencies=</varname> option.</para></listitem>
+      </itemizedlist>
 
-    <para></para>
+      <para></para>
+    </refsect2>
   </refsect1>
 
   <refsect1>