]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
journal: make namespace invocation also support drop-in config
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 4 Mar 2021 07:38:18 +0000 (16:38 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 4 Mar 2021 21:57:14 +0000 (06:57 +0900)
man/journald.conf.xml
src/journal/journald-server.c

index 959815a8f183c38d6db4fbba06a19dded3fbccb7..86137a951de82bfe6f668629e0a4663b519ab51a 100644 (file)
@@ -28,6 +28,9 @@
     <para><filename>/run/systemd/journald.conf.d/*.conf</filename></para>
     <para><filename>/usr/lib/systemd/journald.conf.d/*.conf</filename></para>
     <para><filename>/etc/systemd/journald@<replaceable>NAMESPACE</replaceable>.conf</filename></para>
+    <para><filename>/etc/systemd/journald@<replaceable>NAMESPACE</replaceable>.conf.d/*.conf</filename></para>
+    <para><filename>/run/systemd/journald@<replaceable>NAMESPACE</replaceable>.conf.d/*.conf</filename></para>
+    <para><filename>/usr/lib/systemd/journald@<replaceable>NAMESPACE</replaceable>.conf.d/*.conf</filename></para>
   </refsynopsisdiv>
 
   <refsect1>
@@ -41,8 +44,9 @@
 
     <para>The <command>systemd-journald</command> instance managing the default namespace is configured by
     <filename>/etc/systemd/journald.conf</filename> and associated drop-ins. Instances managing other
-    namespaces read <filename>/etc/systemd/journald@<replaceable>NAMESPACE</replaceable>.conf</filename> with
-    the namespace identifier filled in. This allows each namespace to carry a distinct configuration. See
+    namespaces read <filename>/etc/systemd/journald@<replaceable>NAMESPACE</replaceable>.conf</filename>
+    and associated drop-ins with the namespace identifier filled in. This allows each namespace to carry
+    a distinct configuration. See
     <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
     for details about journal namespaces.</para>
   </refsect1>
index 5cad3740838fd13298f608cd650b5bfdc2d101c4..372acf3354060857b605c7acfc9e002b748d4896 100644 (file)
@@ -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;