#!/bin/sh -e # # smartmontools init.d startup script # # (C) 2003,04,07 Guido Günther # # loosely based on the init script that comes with smartmontools which is # copyrighted 2002 by Bruce Allen # ### BEGIN INIT INFO # Provides: smartmontools # Required-Start: $syslog $remote_fs # Required-Stop: $syslog $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: SMART monitoring daemon ### END INIT INFO SMARTCTL=/usr/sbin/smartctl SMARTD=/usr/sbin/smartd SMARTDPID=/var/run/smartd.pid [ -x $SMARTCTL ] || exit 0 [ -x $SMARTD ] || exit 0 . /lib/lsb/init-functions RET=0 [ -r /etc/default/smartmontools ] && . /etc/default/smartmontools smartd_opts="--pidfile $SMARTDPID $smartd_opts" enable_smart() { log_action_begin_msg "Enabling S.M.A.R.T." for device in $enable_smart; do log_action_cont_msg "$device" if ! $SMARTCTL --quietmode=errorsonly --smart=on $device; then log_action_cont_msg "(failed)" RET=2 fi done log_action_end_msg 0 } check_start_smartd_option() { if [ ! "$start_smartd" = "yes" ]; then log_warning_msg "Not starting S.M.A.R.T. daemon smartd, disabled via /etc/default/smartmontools" return 1 else return 0 fi } case "$1" in start) [ -n "$enable_smart" ] && enable_smart if check_start_smartd_option; then rm -f $SMARTDPID log_daemon_msg "Starting S.M.A.R.T. daemon" "smartd" if start-stop-daemon --start --quiet --pidfile $SMARTDPID \ --exec $SMARTD -- $smartd_opts; then log_end_msg 0 else log_end_msg 1 RET=1 fi fi ;; stop) log_daemon_msg "Stopping S.M.A.R.T. daemon" "smartd" start-stop-daemon --stop --quiet --oknodo --pidfile $SMARTDPID log_end_msg 0 ;; reload|force-reload) log_daemon_msg "Reloading S.M.A.R.T. daemon" "smartd" if start-stop-daemon --stop --quiet --signal 1 \ --pidfile $SMARTDPID; then log_end_msg 0 else log_end_msg 1 RET=1 fi ;; restart) if check_start_smartd_option; then log_daemon_msg "Restarting S.M.A.R.T. daemon" "smartd" start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $SMARTDPID rm -f $SMARTDPID if start-stop-daemon --start --quiet --pidfile $SMARTDPID \ --exec $SMARTD -- $smartd_opts; then log_end_msg 0 else log_end_msg 1 RET=1 fi fi ;; *) echo "Usage: /etc/init.d/smartmontools {start|stop|restart|reload|force-reload}" exit 1 esac exit $RET