]> git.ipfire.org Git - thirdparty/systemd.git/blame - man/systemd.path.xml
util: conf_files_list() return list as parameter
[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
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2 of the License, or
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
19 General Public License for more details.
20
21 You should have received a copy of the GNU General Public License
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>
47 <refpurpose>systemd path configuration files</refpurpose>
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
87 <para>If an 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>
114 <term><varname>PathChanged=</varname></term>
115 <term><varname>DirectoryNotEmpty=</varname></term>
116
117 <listitem><para>Defines paths to
118 monitor for certain changes:
119 <varname>PathExists=</varname> may be
b439c6ee 120 used to watch the mere existence of a
b36b082c
LP
121 file or directory. If the file
122 specified exists the configured unit
123 is
124 activated. <varname>PathChanged=</varname>
125 may be used to watch a file or
126 directory and activate the configured
127 unit whenever it changes or is
128 modified. <varname>DirectoryNotEmpty=</varname>
129 may be used to watch a directory and
b439c6ee 130 activate the configured unit whenever
b36b082c
LP
131 it contains at least one file.</para>
132
133 <para>The arguments of these
134 directives must be absolute file
135 system paths.</para>
136
137 <para>Multiple directives may be
138 combined, of the same and of different
139 types, to watch multiple paths.</para>
140
141 <para>If a path is already existing
142 (in case of
143 <varname>PathExists=</varname>) or a
144 directory already is not empty (in
145 case of
146 <varname>DirectoryNotEmpty=</varname>)
b439c6ee 147 at the time the path unit is activated,
b36b082c
LP
148 then the configured unit is
149 immediately activated as
150 well. Something similar does not apply
151 to <varname>PathChanged=</varname>.
152 </para></listitem>
153 </varlistentry>
154 <varlistentry>
155 <term><varname>Unit=</varname></term>
156
157 <listitem><para>The unit to activate
158 when any of the configured paths
159 changes. The argument is a unit name,
160 whose suffix is not
161 <filename>.path</filename>. If not
b439c6ee 162 specified, this value defaults to a
b36b082c
LP
163 service that has the same name as the
164 path unit, except for the suffix. (See
165 above.) It is recommended that the
166 unit name that is activated and the
b439c6ee
KS
167 unit name of the path unit are named
168 identical, except for the
b36b082c
LP
169 suffix.</para></listitem>
170 </varlistentry>
0e456f97
LP
171 <varlistentry>
172 <term><varname>MakeDirectory=</varname></term>
173
174 <listitem><para>Takes a boolean
175 argument. If true the directories to
176 watch are created before
177 watching. This option is ignored for
178 <varname>PathExists=</varname>
179 settings. Defaults to
180 <option>false</option>.</para></listitem>
181 </varlistentry>
182 <varlistentry>
183 <term><varname>DirectoryMode=</varname></term>
184
185 <listitem><para>If
186 <varname>MakeDirectory=</varname> is
187 enabled use the mode specified here to
188 create the directories in
189 question. Takes an access mode in
190 octal notation. Defaults to
191 <option>0755</option>.</para></listitem>
192 </varlistentry>
b36b082c
LP
193 </variablelist>
194 </refsect1>
195
196 <refsect1>
197 <title>See Also</title>
198 <para>
f3e219a2 199 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
b36b082c
LP
200 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
201 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
202 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
203 <citerefentry><refentrytitle>inotify</refentrytitle><manvolnum>7</manvolnum></citerefentry>
204 </para>
205 </refsect1>
206
207</refentry>