diff options
-rw-r--r-- | man/systemd-tmpfiles.xml | 10 | ||||
-rw-r--r-- | src/tmpfiles/tmpfiles.c | 10 |
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); |