1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Start the MD monitor daemon for all active MD arrays if desired. 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun### BEGIN INIT INFO 6*4882a593Smuzhiyun# Provides: mdadm 7*4882a593Smuzhiyun# Required-Start: $local_fs $syslog mdadm-raid 8*4882a593Smuzhiyun# Required-Stop: $local_fs $syslog mdadm-raid 9*4882a593Smuzhiyun# Default-Start: 2 3 4 5 10*4882a593Smuzhiyun# Default-Stop: 0 1 6 11*4882a593Smuzhiyun# Short-Description: MD monitoring daemon 12*4882a593Smuzhiyun# Description: mdadm provides a monitor mode, in which it will scan for 13*4882a593Smuzhiyun# problems with the MD devices. If a problem is found, the 14*4882a593Smuzhiyun# administrator is alerted via email, or a custom script is 15*4882a593Smuzhiyun# run. 16*4882a593Smuzhiyun### END INIT INFO 17*4882a593Smuzhiyun# 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunMDADM=/sbin/mdadm 20*4882a593SmuzhiyunRUNDIR=/var/run/mdadm 21*4882a593SmuzhiyunPIDFILE=$RUNDIR/monitor.pid 22*4882a593SmuzhiyunDEBIANCONFIG=/etc/default/mdadm 23*4882a593Smuzhiyun 24*4882a593Smuzhiyuntest -x "$MDADM" || exit 0 25*4882a593Smuzhiyun 26*4882a593Smuzhiyuntest -f /proc/mdstat || exit 0 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunSTART_DAEMON=true 29*4882a593Smuzhiyuntest -f $DEBIANCONFIG && . $DEBIANCONFIG 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun. /lib/lsb/init-functions 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun# Include functions 34*4882a593Smuzhiyun. /etc/init.d/functions 35*4882a593Smuzhiyun 36*4882a593Smuzhiyuncase "${1:-}" in 37*4882a593Smuzhiyun start) 38*4882a593Smuzhiyun if is_true $START_DAEMON; then 39*4882a593Smuzhiyun log_daemon_msg "Starting MD monitoring service" "mdadm --monitor" 40*4882a593Smuzhiyun mkdir -p $RUNDIR 41*4882a593Smuzhiyun start-stop-daemon -S -p $PIDFILE -x $MDADM -- \ 42*4882a593Smuzhiyun --monitor --pid-file $PIDFILE --daemonise --scan ${DAEMON_OPTIONS:-} 43*4882a593Smuzhiyun RETVAL=$? 44*4882a593Smuzhiyun log_end_msg $RETVAL 45*4882a593Smuzhiyun exit $RETVAL 46*4882a593Smuzhiyun fi 47*4882a593Smuzhiyun ;; 48*4882a593Smuzhiyun stop) 49*4882a593Smuzhiyun if [ -f $PIDFILE ] ; then 50*4882a593Smuzhiyun log_daemon_msg "Stopping MD monitoring service" "mdadm --monitor" 51*4882a593Smuzhiyun start-stop-daemon -K -p $PIDFILE -x $MDADM 52*4882a593Smuzhiyun RETVAL=$? 53*4882a593Smuzhiyun rm -f $PIDFILE 54*4882a593Smuzhiyun log_end_msg $RETVAL 55*4882a593Smuzhiyun exit $RETVAL 56*4882a593Smuzhiyun fi 57*4882a593Smuzhiyun ;; 58*4882a593Smuzhiyun status) 59*4882a593Smuzhiyun status -p $PIDFILE "$MDADM" && exit 0 || exit $? 60*4882a593Smuzhiyun ;; 61*4882a593Smuzhiyun restart|reload|force-reload) 62*4882a593Smuzhiyun ${0:-} stop 63*4882a593Smuzhiyun ${0:-} start 64*4882a593Smuzhiyun ;; 65*4882a593Smuzhiyun *) 66*4882a593Smuzhiyun echo "Usage: ${0:-} {start|stop|status|restart|reload|force-reload}" >&2 67*4882a593Smuzhiyun exit 1 68*4882a593Smuzhiyun ;; 69*4882a593Smuzhiyunesac 70*4882a593Smuzhiyun 71*4882a593Smuzhiyunexit 0 72*4882a593Smuzhiyun 73