2010-07-02 07:38:30 +07: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
|
2012-04-12 05:20:58 +07:00
|
|
|
under the terms of the GNU Lesser General Public License as published by
|
|
|
|
the Free Software Foundation; either version 2.1 of the License, or
|
2010-07-02 07:38:30 +07:00
|
|
|
(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
|
2012-04-12 05:20:58 +07:00
|
|
|
Lesser General Public License for more details.
|
2010-07-02 07:38:30 +07:00
|
|
|
|
2012-04-12 05:20:58 +07:00
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
2010-07-02 07:38:30 +07:00
|
|
|
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
-->
|
|
|
|
|
|
|
|
<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 14:51:25 +07:00
|
|
|
<para>For each path file, a matching unit file must
|
2010-07-02 07:38:30 +07:00
|
|
|
exist, describing the unit to activate when the path
|
2010-07-02 14:51:25 +07:00
|
|
|
changes. By default, a service by the same name as the
|
2010-07-02 07:38:30 +07: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 14:51:25 +07:00
|
|
|
API to monitor file systems. Due to that, it suffers by the
|
2010-07-02 07:38:30 +07: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 14:51:25 +07:00
|
|
|
point in the file system hierarchy, a dependency
|
2010-07-02 07:38:30 +07:00
|
|
|
between both units is created automatically.</para>
|
2010-07-04 00:54:00 +07: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 07:38:30 +07: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 07:07:39 +07:00
|
|
|
<term><varname>PathExistsGlob=</varname></term>
|
2010-07-02 07:38:30 +07:00
|
|
|
<term><varname>PathChanged=</varname></term>
|
2011-12-03 16:22:26 +07:00
|
|
|
<term><varname>PathModified=</varname></term>
|
2010-07-02 07:38:30 +07:00
|
|
|
<term><varname>DirectoryNotEmpty=</varname></term>
|
|
|
|
|
|
|
|
<listitem><para>Defines paths to
|
|
|
|
monitor for certain changes:
|
|
|
|
<varname>PathExists=</varname> may be
|
2010-07-02 14:51:25 +07:00
|
|
|
used to watch the mere existence of a
|
2010-07-02 07:38:30 +07:00
|
|
|
file or directory. If the file
|
|
|
|
specified exists the configured unit
|
|
|
|
is
|
2011-07-07 07:07:39 +07:00
|
|
|
activated. <varname>PathExistsGlob=</varname>
|
|
|
|
works similar, but checks for the
|
2012-04-17 19:35:48 +07:00
|
|
|
existence of at least one file
|
2011-07-07 07:07:39 +07:00
|
|
|
matching the globbing pattern
|
|
|
|
specified. <varname>PathChanged=</varname>
|
2010-07-02 07:38:30 +07:00
|
|
|
may be used to watch a file or
|
|
|
|
directory and activate the configured
|
2011-12-03 16:22:26 +07: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 07:38:30 +07:00
|
|
|
may be used to watch a directory and
|
2010-07-02 14:51:25 +07:00
|
|
|
activate the configured unit whenever
|
2010-07-02 07:38:30 +07: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 07:07:39 +07:00
|
|
|
<varname>PathExists=</varname> and
|
|
|
|
<varname>PathExistsGlob=</varname>) or
|
|
|
|
a directory already is not empty (in
|
2010-07-02 07:38:30 +07:00
|
|
|
case of
|
|
|
|
<varname>DirectoryNotEmpty=</varname>)
|
2011-07-07 07:07:39 +07:00
|
|
|
at the time the path unit is
|
|
|
|
activated, then the configured unit is
|
2010-07-02 07:38:30 +07:00
|
|
|
immediately activated as
|
|
|
|
well. Something similar does not apply
|
2011-12-03 16:22:26 +07:00
|
|
|
to <varname>PathChanged=</varname>.
|
2010-07-02 07:38:30 +07: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 14:51:25 +07:00
|
|
|
specified, this value defaults to a
|
2010-07-02 07:38:30 +07: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 14:51:25 +07:00
|
|
|
unit name of the path unit are named
|
|
|
|
identical, except for the
|
2010-07-02 07:38:30 +07:00
|
|
|
suffix.</para></listitem>
|
|
|
|
</varlistentry>
|
2011-04-10 06:30:14 +07: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 07:38:30 +07:00
|
|
|
</variablelist>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
<title>See Also</title>
|
|
|
|
<para>
|
2010-07-07 06:38:56 +07:00
|
|
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
2010-07-02 07:38:30 +07: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>
|