From 005c7b1d880e641f634534d24a43e2b5db58b476 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 4 Mar 2021 16:38:18 +0900 Subject: [PATCH] journal: make namespace invocation also support drop-in config --- man/journald.conf.xml | 8 ++++++-- src/journal/journald-server.c | 16 +++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/man/journald.conf.xml b/man/journald.conf.xml index 959815a8f1..86137a951d 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 5cad374083..372acf3354 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"); + dropin_dirname = strjoina("journald@", s->namespace, ".conf.d"); - r = config_parse(NULL, - namespaced, NULL, - "Journal\0", - config_item_perf_lookup, journald_gperf_lookup, - CONFIG_PARSE_WARN, s, - NULL); + 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;