[systemd-devel] [PATCH 07/10] coredump: Support coredump.conf.d directories in the usual search paths

Josh Triplett josh at joshtriplett.org
Sat Nov 29 01:06:48 PST 2014


---
 Makefile-man.am           |  6 ++++--
 man/coredump.conf.xml     | 14 +++++++++++---
 src/journal/coredump.c    |  9 +++++----
 src/journal/coredump.conf |  3 +++
 4 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/Makefile-man.am b/Makefile-man.am
index 593dc40..01d3408 100644
--- a/Makefile-man.am
+++ b/Makefile-man.am
@@ -714,8 +714,10 @@ MANPAGES += \
 	man/coredumpctl.1 \
 	man/systemd-coredump.8
 MANPAGES_ALIAS += \
-	#
-
+	man/coredump.conf.d.5
+man/coredump.conf.d.5: man/coredump.conf.5
+man/coredump.conf.d.html: man/coredump.conf.html
+	$(html-alias)
 
 endif
 
diff --git a/man/coredump.conf.xml b/man/coredump.conf.xml
index 5eb5c5f..37916f0 100644
--- a/man/coredump.conf.xml
+++ b/man/coredump.conf.xml
@@ -22,7 +22,8 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 -->
 
-<refentry id="coredump.conf" conditional="ENABLE_COREDUMP">
+<refentry id="coredump.conf" conditional="ENABLE_COREDUMP"
+          xmlns:xi="http://www.w3.org/2001/XInclude">
   <refentryinfo>
     <title>coredump.conf</title>
     <productname>systemd</productname>
@@ -44,20 +45,27 @@
 
   <refnamediv>
     <refname>coredump.conf</refname>
-    <refpurpose>Coredump storage configuration file</refpurpose>
+    <refname>coredump.conf.d</refname>
+    <refpurpose>Coredump storage configuration files</refpurpose>
   </refnamediv>
 
   <refsynopsisdiv>
     <para><filename>/etc/systemd/coredump.conf</filename></para>
+    <para><filename>/etc/systemd/coredump.conf.d/*.conf</filename></para>
+    <para><filename>/run/systemd/coredump.conf.d/*.conf</filename></para>
+    <para><filename>/usr/lib/systemd/coredump.conf.d/*.conf</filename></para>
   </refsynopsisdiv>
 
   <refsect1>
     <title>Description</title>
 
-    <para>This file configures the behaviour of <command>systemd-coredump</command>,
+    <para>These files configure the behaviour of <command>systemd-coredump</command>,
     a handler for core dumps invoked by the kernel.</para>
   </refsect1>
 
+  <xi:include href="standard-conf.xml" xpointer="confd" />
+  <xi:include href="standard-conf.xml" xpointer="conf" />
+
   <refsect1>
     <title>Options</title>
 
diff --git a/src/journal/coredump.c b/src/journal/coredump.c
index d889ed1..be45a68 100644
--- a/src/journal/coredump.c
+++ b/src/journal/coredump.c
@@ -120,10 +120,11 @@ static int parse_config(void) {
                 {}
         };
 
-        return config_parse(NULL, "/etc/systemd/coredump.conf", NULL,
-                            "Coredump\0",
-                            config_item_table_lookup, items,
-                            false, false, true, NULL);
+        return config_parse_many("/etc/systemd/coredump.conf",
+                                 CONF_DIRS_NULSTR("systemd/coredump.conf"),
+                                 "Coredump\0",
+                                 config_item_table_lookup, items,
+                                 false, NULL);
 }
 
 static int fix_acl(int fd, uid_t uid) {
diff --git a/src/journal/coredump.conf b/src/journal/coredump.conf
index 0cc328f..0fe9fe8 100644
--- a/src/journal/coredump.conf
+++ b/src/journal/coredump.conf
@@ -5,6 +5,9 @@
 #  the Free Software Foundation; either version 2.1 of the License, or
 #  (at your option) any later version.
 #
+# You can override the directives in this file by creating files in
+# /etc/systemd/coredump.conf.d/*.conf.
+#
 # See coredump.conf(5) for details
 
 [Coredump]
-- 
2.1.3



More information about the systemd-devel mailing list