summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/systemd.path.xml17
-rw-r--r--src/path.c2
-rw-r--r--src/path.h1
3 files changed, 13 insertions, 7 deletions
diff --git a/man/systemd.path.xml b/man/systemd.path.xml
index 10d8f73004..5b1ff75f7a 100644
--- a/man/systemd.path.xml
+++ b/man/systemd.path.xml
@@ -113,6 +113,7 @@
<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
@@ -129,8 +130,14 @@
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 whenever
it contains at least one file.</para>
@@ -154,11 +161,7 @@
activated, then the configured unit is
immediately activated as
well. Something similar does not apply
- to
- <varname>PathChanged=</varname>. The
- latter is not activated on simple
- writes but only if files with were
- opened for writing are closed.
+ to <varname>PathChanged=</varname>.
</para></listitem>
</varlistentry>
<varlistentry>
diff --git a/src/path.c b/src/path.c
index db6f873dca..1e5d825209 100644
--- a/src/path.c
+++ b/src/path.c
@@ -44,6 +44,7 @@ int pathspec_watch(PathSpec *s, Unit *u) {
[PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB,
[PATH_EXISTS_GLOB] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB,
[PATH_CHANGED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO,
+ [PATH_MODIFIED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO|IN_MODIFY,
[PATH_DIRECTORY_NOT_EMPTY] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CREATE|IN_MOVED_TO
};
@@ -713,6 +714,7 @@ static const char* const path_type_table[_PATH_TYPE_MAX] = {
[PATH_EXISTS] = "PathExists",
[PATH_EXISTS_GLOB] = "PathExistsGlob",
[PATH_CHANGED] = "PathChanged",
+ [PATH_MODIFIED] = "PathModified",
[PATH_DIRECTORY_NOT_EMPTY] = "DirectoryNotEmpty"
};
diff --git a/src/path.h b/src/path.h
index 4e6ccf5b0e..1d78fe424a 100644
--- a/src/path.h
+++ b/src/path.h
@@ -41,6 +41,7 @@ typedef enum PathType {
PATH_EXISTS_GLOB,
PATH_DIRECTORY_NOT_EMPTY,
PATH_CHANGED,
+ PATH_MODIFIED,
_PATH_TYPE_MAX,
_PATH_TYPE_INVALID = -1
} PathType;