summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/systemd-tmpfiles.xml10
-rw-r--r--src/tmpfiles/tmpfiles.c10
2 files changed, 16 insertions, 4 deletions
diff --git a/man/systemd-tmpfiles.xml b/man/systemd-tmpfiles.xml
index 4ac7224ab2..623b420560 100644
--- a/man/systemd-tmpfiles.xml
+++ b/man/systemd-tmpfiles.xml
@@ -67,9 +67,13 @@
<para>If invoked with no arguments, it applies all
directives from all configuration files. If one or
- more absolute file names are passed on the command
- line only the directives in these files are
- applied.</para>
+ more file names are passed on the command line, only
+ the directives in these files are applied. If only
+ the basename of a configuration file is specified,
+ all configuration directories as specified in <citerefentry>
+ <refentrytitle>tmpfiles.d</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> are searched for a matching file.</para>
</refsect1>
<refsect1>
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index bec73ff6cc..12ec0b2f1b 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -1281,6 +1281,7 @@ static char *resolve_fragment(const char *fragment, const char **search_paths) {
free(resolved_path);
}
+ errno = ENOENT;
return NULL;
}
@@ -1316,7 +1317,14 @@ int main(int argc, char *argv[]) {
int j;
for (j = optind; j < argc; j++) {
- char *fragment = resolve_fragment(argv[j], conf_file_dirs);
+ char *fragment;
+
+ fragment = resolve_fragment(argv[j], conf_file_dirs);
+ if (!fragment) {
+ log_error("Failed to find any: %s file: %m", argv[j]);
+ r = EXIT_FAILURE;
+ goto finish;
+ }
if (read_config_file(fragment, false) < 0)
r = EXIT_FAILURE;
free(fragment);