2010-07-02 04:38:30 +04:00
<?xml version='1.0'?> <!-- * - nxml - * -->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
< !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 Lennart Poettering
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: / / w w w . g n u . o r g / l i c e n s e s /> .
-->
<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 >
<refentrytitle > systemd.path</refentrytitle>
<manvolnum > 5</manvolnum>
</refmeta>
<refnamediv >
<refname > systemd.path</refname>
<refpurpose > systemd path configuration files</refpurpose>
</refnamediv>
<refsynopsisdiv >
<para > <filename > systemd.path</filename> </para>
</refsynopsisdiv>
<refsect1 >
<title > Description</title>
<para > A unit configuration file whose name ends in
<filename > .path</filename> encodes information about
a path monitored by systemd, for
path-based activation.</para>
<para > This man page lists the configuration options
specific to 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>
2010-07-02 11:51:25 +04:00
<para > For each path file, a matching unit file must
2010-07-02 04:38:30 +04:00
exist, describing the unit to activate when the path
2010-07-02 11:51:25 +04:00
changes. By default, a service by the same name as the
2010-07-02 04:38:30 +04:00
path (except for the suffix) is activated. Example: a
path file <filename > foo.path</filename> activates a
matching service <filename > foo.service</filename> . The
unit to activate may be controlled by
<varname > Unit=</varname> (see below).</para>
<para > Internally, path units use the
<citerefentry > <refentrytitle > inotify</refentrytitle> <manvolnum > 7</manvolnum> </citerefentry>
2010-07-02 11:51:25 +04:00
API to monitor file systems. Due to that, it suffers by the
2010-07-02 04:38:30 +04:00
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
2010-07-02 11:51:25 +04:00
point in the file system hierarchy, a dependency
2010-07-02 04:38:30 +04:00
between both units is created automatically.</para>
2010-07-03 21:54:00 +04:00
<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>
2010-07-02 04:38:30 +04:00
</refsect1>
<refsect1 >
<title > Options</title>
<para > Path files must include a [Path] section,
which carries information about the path(s) it
monitors. The options specific to the [Path] section
of path units are the following:</para>
<variablelist >
<varlistentry >
<term > <varname > PathExists=</varname> </term>
2011-07-07 04:07:39 +04:00
<term > <varname > PathExistsGlob=</varname> </term>
2010-07-02 04:38:30 +04:00
<term > <varname > PathChanged=</varname> </term>
2011-12-03 13:22:26 +04:00
<term > <varname > PathModified=</varname> </term>
2010-07-02 04:38:30 +04:00
<term > <varname > DirectoryNotEmpty=</varname> </term>
<listitem > <para > Defines paths to
monitor for certain changes:
<varname > PathExists=</varname> may be
2010-07-02 11:51:25 +04:00
used to watch the mere existence of a
2010-07-02 04:38:30 +04:00
file or directory. If the file
specified exists the configured unit
is
2011-07-07 04:07:39 +04:00
activated. <varname > PathExistsGlob=</varname>
works similar, but checks for the
existance of at least one file
matching the globbing pattern
specified. <varname > PathChanged=</varname>
2010-07-02 04:38:30 +04:00
may be used to watch a file or
directory and activate the configured
2011-12-03 13:22:26 +04:00
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>
2010-07-02 04:38:30 +04:00
may be used to watch a directory and
2010-07-02 11:51:25 +04:00
activate the configured unit whenever
2010-07-02 04:38:30 +04:00
it contains at least one file.</para>
<para > The arguments of these
directives must be absolute file
system paths.</para>
<para > Multiple directives may be
combined, of the same and of different
types, to watch multiple paths.</para>
<para > If a path is already existing
(in case of
2011-07-07 04:07:39 +04:00
<varname > PathExists=</varname> and
<varname > PathExistsGlob=</varname> ) or
a directory already is not empty (in
2010-07-02 04:38:30 +04:00
case of
<varname > DirectoryNotEmpty=</varname> )
2011-07-07 04:07:39 +04:00
at the time the path unit is
activated, then the configured unit is
2010-07-02 04:38:30 +04:00
immediately activated as
well. Something similar does not apply
2011-12-03 13:22:26 +04:00
to <varname > PathChanged=</varname> .
2010-07-02 04:38:30 +04:00
</para> </listitem>
</varlistentry>
<varlistentry >
<term > <varname > Unit=</varname> </term>
<listitem > <para > The unit to activate
when any of the configured paths
changes. The argument is a unit name,
whose suffix is not
<filename > .path</filename> . If not
2010-07-02 11:51:25 +04:00
specified, this value defaults to a
2010-07-02 04:38:30 +04:00
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
2010-07-02 11:51:25 +04:00
unit name of the path unit are named
identical, except for the
2010-07-02 04:38:30 +04:00
suffix.</para> </listitem>
</varlistentry>
2011-04-10 03:30:14 +04:00
<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>
2010-07-02 04:38:30 +04:00
</variablelist>
</refsect1>
<refsect1 >
<title > See Also</title>
<para >
2010-07-07 03:38:56 +04:00
<citerefentry > <refentrytitle > systemd</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> ,
2010-07-02 04:38:30 +04:00
<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> ,
<citerefentry > <refentrytitle > inotify</refentrytitle> <manvolnum > 7</manvolnum> </citerefentry>
</para>
</refsect1>
</refentry>