From: Yu Watanabe Date: Thu, 4 Mar 2021 07:38:18 +0000 (+0900) Subject: journal: make namespace invocation also support drop-in config X-Git-Tag: v248-rc3~54^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=005c7b1d880e641f634534d24a43e2b5db58b476;p=thirdparty%2Fsystemd.git journal: make namespace invocation also support drop-in config --- diff --git a/man/journald.conf.xml b/man/journald.conf.xml index 959815a8f18..86137a951de 100644 --- a/man/journald.conf.xml +++ b/man/journald.conf.xml @@ -28,6 +28,9 @@ /run/systemd/journald.conf.d/*.conf /usr/lib/systemd/journald.conf.d/*.conf /etc/systemd/journald@NAMESPACE.conf + /etc/systemd/journald@NAMESPACE.conf.d/*.conf + /run/systemd/journald@NAMESPACE.conf.d/*.conf + /usr/lib/systemd/journald@NAMESPACE.conf.d/*.conf @@ -41,8 +44,9 @@ The systemd-journald instance managing the default namespace is configured by /etc/systemd/journald.conf and associated drop-ins. Instances managing other - namespaces read /etc/systemd/journald@NAMESPACE.conf with - the namespace identifier filled in. This allows each namespace to carry a distinct configuration. See + namespaces read /etc/systemd/journald@NAMESPACE.conf + and associated drop-ins with the namespace identifier filled in. This allows each namespace to carry + a distinct configuration. See systemd-journald.service8 for details about journal namespaces. diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index 5cad3740838..372acf33540 100644 --- a/src/journal/journald-server.c +++ b/src/journal/journald-server.c @@ -1625,17 +1625,19 @@ static int server_parse_config_file(Server *s) { assert(s); if (s->namespace) { - const char *namespaced; + const char *namespaced, *dropin_dirname; /* If we are running in namespace mode, load the namespace specific configuration file, and nothing else */ namespaced = strjoina(PKGSYSCONFDIR "/journald@", s->namespace, ".conf"); - - r = config_parse(NULL, - namespaced, NULL, - "Journal\0", - config_item_perf_lookup, journald_gperf_lookup, - CONFIG_PARSE_WARN, s, - NULL); + dropin_dirname = strjoina("journald@", s->namespace, ".conf.d"); + + r = config_parse_many( + STRV_MAKE_CONST(namespaced), + (const char* const*) CONF_PATHS_STRV("systemd"), + dropin_dirname, + "Journal\0", + config_item_perf_lookup, journald_gperf_lookup, + CONFIG_PARSE_WARN, s, NULL); if (r < 0) return r;