From 58a2ce726968dcc60aa4d8c380e4f093afd33c58 Mon Sep 17 00:00:00 2001 From: Martin Wilck Date: Thu, 27 Feb 2025 23:17:42 +0100 Subject: [PATCH] Revert "mdmonitor: Abandon custom configuration files" This reverts commit a7a5e676a7eb2ac97acd31b13f75515e9573f891. For the time being, we want to stick with /etc/sysconfig/mdadm --- Makefile | 1 + systemd/SUSE-mdadm_env.sh | 48 +++++++++++++++++++++++++++++++++++++++ systemd/mdmonitor.service | 22 ++++-------------- 3 files changed, 53 insertions(+), 18 deletions(-) create mode 100644 systemd/SUSE-mdadm_env.sh diff --git a/Makefile b/Makefile index bcd092d..24367b0 100644 --- a/Makefile +++ b/Makefile @@ -341,6 +341,7 @@ install-systemd: systemd/mdmon@.service $(INSTALL) -D -m 755 .install.tmp.3 $(DESTDIR)$(SYSTEMD_DIR)-shutdown/$$file ; \ rm -f .install.tmp.3; \ done + if [ -f /etc/SuSE-release -o -n "$(SUSE)" ] ;then $(INSTALL) -D -m 755 systemd/SUSE-mdadm_env.sh $(DESTDIR)$(LIB_DIR)/mdadm_env.sh ;fi install-bin: mdadm mdmon $(INSTALL) -D $(STRIP) -m 755 mdadm $(DESTDIR)$(BINDIR)/mdadm diff --git a/systemd/SUSE-mdadm_env.sh b/systemd/SUSE-mdadm_env.sh new file mode 100644 index 0000000..c13b48a --- /dev/null +++ b/systemd/SUSE-mdadm_env.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +# extract configuration from /etc/sysconfig/mdadm and write +# environment to /run/sysconfig/mdadm to be used by +# systemd unit files. + +MDADM_SCAN="yes" + +# Following adapted from /etc/init.d/mdadmd on openSUSE + +mdadmd_CONFIG=/etc/sysconfig/mdadm +if test -r $mdadmd_CONFIG; then + . $mdadmd_CONFIG +fi + +if [ x$MDADM_DELAY != x"" ]; then + MDADM_DELAY="-d "$MDADM_DELAY; +fi + +if [ x$MDADM_MAIL != x"" ]; then + MDADM_MAIL="-m \"$MDADM_MAIL\"" +fi + +if [ x$MDADM_PROGRAM != x"" ]; then + MDADM_PROGRAM="-p \"$MDADM_PROGRAM\"" +fi + +if [ x$MDADM_SCAN = x"yes" ]; then + MDADM_SCAN="--scan" +else + MDADM_SCAN="" +fi + +if [ x$MDADM_SEND_MAIL_ON_START = x"yes" ]; then + MDADM_SEND_MAIL="-t" +else + MDADM_SEND_MAIL="" +fi + +if [ x$MDADM_CONFIG != x"" ]; then + MDADM_CONFIG="-c \"$MDADM_CONFIG\"" +fi + +mkdir -p /run/sysconfig +echo "MDADM_MONITOR_ARGS=$MDADM_RAIDDEVICES $MDADM_DELAY $MDADM_MAIL $MDADM_PROGRAM $MDADM_SCAN $MDADM_SEND_MAIL $MDADM_CONFIG" > /run/sysconfig/mdadm +if [ -n "$MDADM_CHECK_DURATION" ]; then + echo "MDADM_CHECK_DURATION=$MDADM_CHECK_DURATION" >> /run/sysconfig/mdadm +fi diff --git a/systemd/mdmonitor.service b/systemd/mdmonitor.service index 95046bc..9c36478 100644 --- a/systemd/mdmonitor.service +++ b/systemd/mdmonitor.service @@ -11,21 +11,7 @@ DefaultDependencies=no Documentation=man:mdadm(8) [Service] -# For Maintainers: -# We need to ensure that the mdmonitor configuration aligns with the guidelines provided -# in the man page for users. -# /etc/sysconfig/mdadm, /etc/sysconfig/mdmonitor, or any other similar configuration file should -# not be supported because non upstream components are not described in man pages. - -# Parameters designed to be customized by user, should be settable via mdadm.conf: -# - MONITORDELAY (do not set --delay in service) -# - MAILADDR (do not set --mail in service) -# - MAILFROM (not settable from cmdline) -# - PROGRAM (do not set --program or --alert in service) -# -# Following parameters can be customized in service: -# - --syslog (configure syslog logging) -# - --fork (Type=forking must be added, not recommended and not needed with systemd) -# - --pid-file (allowed only when --fork selected) - -ExecStart=BINDIR/mdadm --monitor --scan +Environment= MDADM_MONITOR_ARGS=--scan +EnvironmentFile=-/run/sysconfig/mdadm +ExecStartPre=-/usr/lib/mdadm/mdadm_env.sh +ExecStart=BINDIR/mdadm --monitor $MDADM_MONITOR_ARGS -- 2.48.1