]> git.ipfire.org Git - thirdparty/systemd.git/blame - man/systemd.path.xml
units: for all unit settings that take lists, allow the empty string for resetting...
[thirdparty/systemd.git] / man / systemd.path.xml
CommitLineData
b36b082c
LP
1<?xml version='1.0'?> <!--*-nxml-*-->
2<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
3<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
4 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
5
6<!--
7 This file is part of systemd.
8
9 Copyright 2010 Lennart Poettering
10
11 systemd is free software; you can redistribute it and/or modify it
5430f7f2
LP
12 under the terms of the GNU Lesser General Public License as published by
13 the Free Software Foundation; either version 2.1 of the License, or
b36b082c
LP
14 (at your option) any later version.
15
16 systemd is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5430f7f2 19 Lesser General Public License for more details.
b36b082c 20
5430f7f2 21 You should have received a copy of the GNU Lesser General Public License
b36b082c
LP
22 along with systemd; If not, see <http://www.gnu.org/licenses/>.
23-->
24
25<refentry id="systemd.path">
26 <refentryinfo>
27 <title>systemd.path</title>
28 <productname>systemd</productname>
29
30 <authorgroup>
31 <author>
32 <contrib>Developer</contrib>
33 <firstname>Lennart</firstname>
34 <surname>Poettering</surname>
35 <email>lennart@poettering.net</email>
36 </author>
37 </authorgroup>
38 </refentryinfo>
39
40 <refmeta>
41 <refentrytitle>systemd.path</refentrytitle>
42 <manvolnum>5</manvolnum>
43 </refmeta>
44
45 <refnamediv>
46 <refname>systemd.path</refname>
34511ca7 47 <refpurpose>Path unit configuration</refpurpose>
b36b082c
LP
48 </refnamediv>
49
50 <refsynopsisdiv>
51 <para><filename>systemd.path</filename></para>
52 </refsynopsisdiv>
53
54 <refsect1>
55 <title>Description</title>
56
57 <para>A unit configuration file whose name ends in
58 <filename>.path</filename> encodes information about
59 a path monitored by systemd, for
60 path-based activation.</para>
61
62 <para>This man page lists the configuration options
63 specific to this unit type. See
64 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
65 for the common options of all unit configuration
66 files. The common configuration items are configured
67 in the generic [Unit] and [Install] sections. The
68 path specific configuration options are configured in
69 the [Path] section.</para>
70
b439c6ee 71 <para>For each path file, a matching unit file must
b36b082c 72 exist, describing the unit to activate when the path
b439c6ee 73 changes. By default, a service by the same name as the
b36b082c
LP
74 path (except for the suffix) is activated. Example: a
75 path file <filename>foo.path</filename> activates a
76 matching service <filename>foo.service</filename>. The
77 unit to activate may be controlled by
78 <varname>Unit=</varname> (see below).</para>
79
80 <para>Internally, path units use the
81 <citerefentry><refentrytitle>inotify</refentrytitle><manvolnum>7</manvolnum></citerefentry>
b439c6ee 82 API to monitor file systems. Due to that, it suffers by the
b36b082c
LP
83 same limitations as inotify, and for example cannot be
84 used to monitor files or directories changed by other
85 machines on remote NFS file systems.</para>
86
f848f8d8 87 <para>If a path unit is beneath another mount
b439c6ee 88 point in the file system hierarchy, a dependency
b36b082c 89 between both units is created automatically.</para>
62adf224
LP
90
91 <para>Unless <varname>DefaultDependencies=</varname>
92 is set to <option>false</option>, path units will
93 implicitly have dependencies of type
94 <varname>Conflicts=</varname> and
95 <varname>Before=</varname> on
96 <filename>shutdown.target</filename>. These ensure
97 that path units are terminated cleanly prior to system
98 shutdown. Only path units involved with early boot or
99 late system shutdown should disable this
100 option.</para>
b36b082c
LP
101 </refsect1>
102
103 <refsect1>
104 <title>Options</title>
105
106 <para>Path files must include a [Path] section,
107 which carries information about the path(s) it
108 monitors. The options specific to the [Path] section
109 of path units are the following:</para>
110
111 <variablelist>
112 <varlistentry>
113 <term><varname>PathExists=</varname></term>
8092a428 114 <term><varname>PathExistsGlob=</varname></term>
b36b082c 115 <term><varname>PathChanged=</varname></term>
e9223856 116 <term><varname>PathModified=</varname></term>
b36b082c
LP
117 <term><varname>DirectoryNotEmpty=</varname></term>
118
119 <listitem><para>Defines paths to
120 monitor for certain changes:
121 <varname>PathExists=</varname> may be
b439c6ee 122 used to watch the mere existence of a
b36b082c
LP
123 file or directory. If the file
124 specified exists the configured unit
125 is
8092a428
LP
126 activated. <varname>PathExistsGlob=</varname>
127 works similar, but checks for the
dc786b29 128 existence of at least one file
8092a428
LP
129 matching the globbing pattern
130 specified. <varname>PathChanged=</varname>
b36b082c
LP
131 may be used to watch a file or
132 directory and activate the configured
74051b9b
LP
133 unit whenever it changes. It is not
134 activated on every write to the
135 watched file but it is activated if
136 the file which was open for writing
137 gets
138 closed. <varname>PathModified=</varname>
139 is similar, but additionally it is
140 activated also on simple writes to the
141 watched file.
e9223856 142 <varname>DirectoryNotEmpty=</varname>
b36b082c 143 may be used to watch a directory and
b439c6ee 144 activate the configured unit whenever
b36b082c
LP
145 it contains at least one file.</para>
146
147 <para>The arguments of these
148 directives must be absolute file
149 system paths.</para>
150
151 <para>Multiple directives may be
152 combined, of the same and of different
74051b9b
LP
153 types, to watch multiple paths. If the
154 empty string is assigned to any of
155 these options the list of paths to
156 watch is reset, and any prior
157 assignments of these options will not
158 have any effect.</para>
b36b082c
LP
159
160 <para>If a path is already existing
161 (in case of
8092a428
LP
162 <varname>PathExists=</varname> and
163 <varname>PathExistsGlob=</varname>) or
164 a directory already is not empty (in
b36b082c
LP
165 case of
166 <varname>DirectoryNotEmpty=</varname>)
8092a428
LP
167 at the time the path unit is
168 activated, then the configured unit is
b36b082c
LP
169 immediately activated as
170 well. Something similar does not apply
e9223856 171 to <varname>PathChanged=</varname>.
b36b082c
LP
172 </para></listitem>
173 </varlistentry>
174 <varlistentry>
175 <term><varname>Unit=</varname></term>
176
177 <listitem><para>The unit to activate
178 when any of the configured paths
179 changes. The argument is a unit name,
180 whose suffix is not
181 <filename>.path</filename>. If not
b439c6ee 182 specified, this value defaults to a
b36b082c
LP
183 service that has the same name as the
184 path unit, except for the suffix. (See
185 above.) It is recommended that the
186 unit name that is activated and the
b439c6ee
KS
187 unit name of the path unit are named
188 identical, except for the
b36b082c
LP
189 suffix.</para></listitem>
190 </varlistentry>
0e456f97
LP
191 <varlistentry>
192 <term><varname>MakeDirectory=</varname></term>
193
194 <listitem><para>Takes a boolean
195 argument. If true the directories to
196 watch are created before
197 watching. This option is ignored for
198 <varname>PathExists=</varname>
199 settings. Defaults to
200 <option>false</option>.</para></listitem>
201 </varlistentry>
202 <varlistentry>
203 <term><varname>DirectoryMode=</varname></term>
204
205 <listitem><para>If
206 <varname>MakeDirectory=</varname> is
207 enabled use the mode specified here to
208 create the directories in
209 question. Takes an access mode in
210 octal notation. Defaults to
211 <option>0755</option>.</para></listitem>
212 </varlistentry>
b36b082c
LP
213 </variablelist>
214 </refsect1>
215
216 <refsect1>
217 <title>See Also</title>
218 <para>
f3e219a2 219 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
b36b082c
LP
220 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
221 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
222 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
9cc2c8b7
ZJS
223 <citerefentry><refentrytitle>inotify</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
224 <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
b36b082c
LP
225 </para>
226 </refsect1>
227
228</refentry>