#!/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 # Copyright © 2005-2009 Martin F. Krafft # 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