mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-22 13:33:56 +03:00
analyze-verify: honour $SYSTEMD_UNIT_PATH, allow system paths to be ignored
SYSTEMD_UNIT_PATH=foobar: systemd-analyze verify barbar/unit.service will load units from barbar/, foobar/, /etc/systemd/system/, etc. SYSTEMD_UNIT_PATH= systemd-analyze verify barbar/unit.service will load units only from barbar/, which is useful e.g. when testing systemd's own units on a system with an older version of systemd installed.
This commit is contained in:
parent
dd5e7000cb
commit
d941ea22e3
@ -181,14 +181,15 @@
|
||||
<option>--log-target=</option>, described in
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>).</para>
|
||||
|
||||
<para><command>systemd-analyze verify</command> will load unit
|
||||
files and print warnings if any errors are detected. Files
|
||||
specified on the command line will be loaded, but also any other
|
||||
units referenced by them. This command works by prepending the
|
||||
directories for all command line arguments at the beginning of the
|
||||
unit load path, which means that all units files found in those
|
||||
directories will be used in preference to the unit files found in
|
||||
the standard locations, even if not listed explicitly.</para>
|
||||
<para><command>systemd-analyze verify</command> will load unit files and print
|
||||
warnings if any errors are detected. Files specified on the command line will be
|
||||
loaded, but also any other units referenced by them. The full unit search path is
|
||||
formed by combining the directories for all command line arguments, and the usual unit
|
||||
load paths (variable <varname>$SYSTEMD_UNIT_PATH</varname> is supported, and may be
|
||||
used to replace or augment the compiled in set of unit load paths; see
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
|
||||
All units files present in the directories containing the command line arguments will
|
||||
be used in preference to the other paths.</para>
|
||||
|
||||
<para>If no command is passed, <command>systemd-analyze
|
||||
time</command> is implied.</para>
|
||||
|
@ -71,6 +71,7 @@ static int prepare_filename(const char *filename, char **ret) {
|
||||
}
|
||||
|
||||
static int generate_path(char **var, char **filenames) {
|
||||
const char *old;
|
||||
char **filename;
|
||||
|
||||
_cleanup_strv_free_ char **ans = NULL;
|
||||
@ -90,9 +91,19 @@ static int generate_path(char **var, char **filenames) {
|
||||
|
||||
assert_se(strv_uniq(ans));
|
||||
|
||||
r = strv_extend(&ans, "");
|
||||
if (r < 0)
|
||||
return r;
|
||||
/* First, prepend our directories. Second, if some path was specified, use that, and
|
||||
* otherwise use the defaults. Any duplicates will be filtered out in path-lookup.c.
|
||||
* Treat explicit empty path to mean that nothing should be appended.
|
||||
*/
|
||||
old = getenv("SYSTEMD_UNIT_PATH");
|
||||
if (!streq_ptr(old, "")) {
|
||||
if (!old)
|
||||
old = ":";
|
||||
|
||||
r = strv_extend(&ans, old);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
*var = strv_join(ans, ":");
|
||||
if (!*var)
|
||||
|
Loading…
Reference in New Issue
Block a user