Control: tags -1 patch Hello Matthew,
attached is a git patch that adds mdadm and mdadm-waitidle scripts. On Thu, 9 Nov 2023 16:09:22 +0100 Stephan Seitz <[email protected]> wrote: > [...] > * Removing cron jobs in favour of systemd timers: > - daily checks also work if system is not always on (Closes: > #889978). I thought that anacron could handle this.. > > Even the cronjob is gone. sorry, the patch does not include cronjob since o-s-s does not have a way to handle it. By the way I don't remember a project consensus for dropping cronjobs in favour of timers.. Best Regards, Lorenzo
From e5179d055f6958638b0319bba25562b3e6b77f5e Mon Sep 17 00:00:00 2001 From: Lorenzo Puliti <[email protected]> Date: Fri, 1 Dec 2023 02:19:27 +0100 Subject: [PATCH] Add mdadm and mdadm-waitidle scripts Add scripts dropped from mdadm 4.2+20230227-1 on 28 Feb 2023 --- debian/copyright | 8 +++ lib/mapping | 2 + scripts/mdadm | 100 +++++++++++++++++++++++++++++++++ scripts/mdadm-waitidle | 60 ++++++++++++++++++++ scripts/mdadm-waitidle.md5sums | 1 + scripts/mdadm.md5sums | 1 + 6 files changed, 172 insertions(+) create mode 100755 scripts/mdadm create mode 100755 scripts/mdadm-waitidle create mode 100644 scripts/mdadm-waitidle.md5sums create mode 100644 scripts/mdadm.md5sums diff --git a/debian/copyright b/debian/copyright index 905292d..6746261 100644 --- a/debian/copyright +++ b/debian/copyright @@ -37,6 +37,14 @@ Copyright: 1997-2002, Remco Treffkorn License: BSD-3-clause Comment: Salsa debian-gps-team/pkg-gpsd 026301b71 +Files: scripts/mdadm* +Copyright: 2001-2005 Mario Jou/3en <[email protected]> + 2005-2008 Martin F. Krafft <[email protected]> + 2018 Dimitri John Ledkov <[email protected]> + 2019 Felix Lechner <[email protected]> +License: GPL-2+ +Comment: Salsa debian/mdadm 140efd48 + Files: scripts/network-manager Copyright: 2004 - 2016 Red Hat, Inc. 2005 - 2009 Novell, Inc. diff --git a/lib/mapping b/lib/mapping index c1b867d..c0cf8cb 100644 --- a/lib/mapping +++ b/lib/mapping @@ -9,6 +9,8 @@ dirsrv.service dirsrv dnscrypt-proxy.service dnscrypt-proxy firewalld.service firewalld gpsd.service gpsd +mdadm-waitidle.service mdadm-waitidle +mdadm.service mdadm nftables.service nftables pdns.service pdns rsyslog.service rsyslog diff --git a/scripts/mdadm b/scripts/mdadm new file mode 100755 index 0000000..0a9004f --- /dev/null +++ b/scripts/mdadm @@ -0,0 +1,100 @@ +#!/bin/sh +# +# Start the MD monitor daemon for all active MD arrays if desired. +# This script is not used under systemd. +# +# Copyright © 2001-2005 Mario Jou/3en <[email protected]> +# Copyright © 2005-2009 Martin F. Krafft <[email protected]> +# Distributable under the terms of the GNU GPL version 2. +# +### BEGIN INIT INFO +# Provides: mdadm +# Required-Start: $local_fs $syslog +# Required-Stop: $local_fs $syslog sendsigs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: MD monitoring daemon +# Description: mdadm provides a monitor mode, in which it will scan for +# problems with the MD devices. If a problem is found, the +# administrator is alerted via email, or a custom script is +# run. +### END INIT INFO +# +set -eu + +MDADM=/sbin/mdadm +MDMON=/sbin/mdmon +RUNDIR=/run/mdadm +PIDFILE=$RUNDIR/monitor.pid +DEBIANCONFIG=/etc/default/mdadm + +test -x "$MDADM" || exit 0 + +test -f /proc/mdstat || exit 0 + +START_DAEMON=true +test -f $DEBIANCONFIG && . $DEBIANCONFIG + +. /lib/lsb/init-functions + +is_true() +{ + case "${1:-}" in + [Yy]es|[Yy]|1|[Tt]|[Tt]rue) return 0;; + *) return 1; + esac +} + +case "${1:-}" in + start) + if [ -x /usr/bin/systemd-detect-virt ] && /usr/bin/systemd-detect-virt --quiet --container; then + log_daemon_msg "Not starting MD monitoring service in container" + log_end_msg 0 + exit 0 + fi + + if is_true $START_DAEMON; then + log_daemon_msg "Starting MD monitoring service" "mdadm --monitor" + mkdir -p $RUNDIR + set +e + start-stop-daemon -S -p $PIDFILE -x $MDADM -- \ + --monitor --pid-file $PIDFILE --daemonise --scan ${DAEMON_OPTIONS:-} + log_end_msg $? + set -e + fi + if [ "$(echo $RUNDIR/md[0-9]*.pid)" != "$RUNDIR/md[0-9]*.pid" ]; then + log_daemon_msg "Restarting MD external metadata monitor" "mdmon --takeover --all" + set +e + $MDMON --takeover --all + log_end_msg $? + set -e + fi + ;; + stop) + if [ -f $PIDFILE ] ; then + log_daemon_msg "Stopping MD monitoring service" "mdadm --monitor" + set +e + start-stop-daemon -K -p $PIDFILE -x $MDADM + rm -f $PIDFILE + log_end_msg $? + set -e + fi + for file in $RUNDIR/md[0-9]*.pid ; do + [ ! -f "$file" ] && continue + ln -sf $file /run/sendsigs.omit.d/mdmon-${file##*/} + done + ;; + status) + status_of_proc -p $PIDFILE "$MDADM" "mdadm" && exit 0 || exit $? + ;; + restart|reload|force-reload) + ${0:-} stop + ${0:-} start + ;; + *) + echo "Usage: ${0:-} {start|stop|status|restart|reload|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/scripts/mdadm-waitidle b/scripts/mdadm-waitidle new file mode 100755 index 0000000..b986f1e --- /dev/null +++ b/scripts/mdadm-waitidle @@ -0,0 +1,60 @@ +#!/bin/sh +# This script is not used when systemd is running +### BEGIN INIT INFO +# Provides: mdadm-waitidle +# Required-Start: +# Required-Stop: +# Should-Stop: halt reboot kexec +# X-Stop-After: umountroot +# Default-Start: +# Default-Stop: 0 6 +# Short-Description: Wait for MD arrays to become idle +# Description: Waits until all MD arrays are in idle and synced state +# before halt/reboot. +### END INIT INFO +# +set -eu + +MDADM=/sbin/mdadm +test -x "$MDADM" || exit 0 +test -f /proc/mdstat || exit 0 + +. /lib/lsb/init-functions + +case "${1:-}" in + + start|restart|force-reload) + # nothing, the only reason the script is here is to stop arrays + ;; + + stop) + sync + wait= + for md in /sys/block/md*/md ; do + [ -d "$md" ] || continue + [ "$wait" ] || log_action_begin_msg "Waiting for MD arrays to become idle" + wait=y + [ -w $md/sync_action ] && echo idle > $md/sync_action + done + if [ "$wait" ]; then + # mdadm --wait-clean has a short internal timeout + if $MDADM --wait-clean --scan; then + log_action_end_msg 0 + else + log_action_end_msg 1 + sleep 1 + fi + fi + ;; + + status) + status_of_proc /usr/bin/$NAME $NAME + ;; + + *) + echo "Usage: ${0:-} stop" >&2 + exit 1;; + +esac + +exit 0 diff --git a/scripts/mdadm-waitidle.md5sums b/scripts/mdadm-waitidle.md5sums new file mode 100644 index 0000000..dc2734a --- /dev/null +++ b/scripts/mdadm-waitidle.md5sums @@ -0,0 +1 @@ +0d575d4210d6927d4f674ec7c2abbd30 unstable_0.16 diff --git a/scripts/mdadm.md5sums b/scripts/mdadm.md5sums new file mode 100644 index 0000000..5fc9e11 --- /dev/null +++ b/scripts/mdadm.md5sums @@ -0,0 +1 @@ +efc6265fbfed68898f122344143747f9 unstable_0.16 -- 2.40.1

