path specific configuration options are configured in
the [Path] section.</para>
- <para>For each path file a matching unit file must
+ <para>For each path file, a matching unit file must
exist, describing the unit to activate when the path
- changes. By default a service by the same name as the
+ changes. By default, a service by the same name as the
path (except for the suffix) is activated. Example: a
path file <filename>foo.path</filename> activates a
matching service <filename>foo.service</filename>. The
<para>Internally, path units use the
<citerefentry><refentrytitle>inotify</refentrytitle><manvolnum>7</manvolnum></citerefentry>
- API to monitor file systems. Due to that it suffers by the
+ API to monitor file systems. Due to that, it suffers by the
same 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>If an path unit is beneath another mount
- point in the file system hierarchy a dependency
+ point in the file system hierarchy, a dependency
between both units is created automatically.</para>
+
+ <para>Unless <varname>DefaultDependencies=</varname>
+ is set to <option>false</option>, path units will
+ implicitly 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 this
+ option.</para>
</refsect1>
<refsect1>
<variablelist>
<varlistentry>
<term><varname>PathExists=</varname></term>
+ <term><varname>PathExistsGlob=</varname></term>
<term><varname>PathChanged=</varname></term>
+ <term><varname>PathModified=</varname></term>
<term><varname>DirectoryNotEmpty=</varname></term>
<listitem><para>Defines paths to
monitor for certain changes:
<varname>PathExists=</varname> may be
- used to watch the mere existance of a
+ used to watch the mere existence of a
file or directory. If the file
specified exists the configured unit
is
- activated. <varname>PathChanged=</varname>
+ activated. <varname>PathExistsGlob=</varname>
+ works similar, but checks for the
+ existance of at least one file
+ matching the globbing pattern
+ specified. <varname>PathChanged=</varname>
may be used to watch a file or
directory and activate the configured
- unit whenever it changes or is
- modified. <varname>DirectoryNotEmpty=</varname>
+ unit whenever it changes. It is not activated
+ on every write to the watched file but it is
+ activated if the file which was open for writing
+ gets closed. <varname>PathModified=</varname>
+ is similar, but additionally it is activated
+ also on simple writes to the watched file.
+
+ <varname>DirectoryNotEmpty=</varname>
may be used to watch a directory and
- activate the configured unit whenver
+ activate the configured unit whenever
it contains at least one file.</para>
<para>The arguments of these
<para>If a path is already existing
(in case of
- <varname>PathExists=</varname>) or a
- directory already is not empty (in
+ <varname>PathExists=</varname> and
+ <varname>PathExistsGlob=</varname>) or
+ a directory already is not empty (in
case of
<varname>DirectoryNotEmpty=</varname>)
- at the time the path unit is activated
- then the configured unit is
+ at the time the path unit is
+ activated, then the configured unit is
immediately activated as
well. Something similar does not apply
to <varname>PathChanged=</varname>.
changes. The argument is a unit name,
whose suffix is not
<filename>.path</filename>. If not
- specified this value defaults to a
+ specified, this value defaults to a
service that has the same name as the
path unit, except for the suffix. (See
above.) It is recommended that the
unit name that is activated and the
- unit name of the path unit is chosen
- identical except for the
+ unit name of the path unit are named
+ identical, except for the
suffix.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>MakeDirectory=</varname></term>
+
+ <listitem><para>Takes a boolean
+ argument. If true the directories to
+ watch are created before
+ watching. This option is ignored for
+ <varname>PathExists=</varname>
+ settings. Defaults to
+ <option>false</option>.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>DirectoryMode=</varname></term>
+
+ <listitem><para>If
+ <varname>MakeDirectory=</varname> is
+ enabled use the mode specified here to
+ create the directories in
+ question. Takes an access mode in
+ octal notation. Defaults to
+ <option>0755</option>.</para></listitem>
+ </varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
- <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,