#!/bin/sh
-# $FreeBSD: ports/sysutils/smartmontools/files/smartd.in,v 1.2 2010/03/27 00:15:05 dougb Exp $
+# $FreeBSD: ports/sysutils/smartmontools/files/smartd.in,v 1.4 2012/02/15 08:46:57 dougb Exp $
+#
# PROVIDE: smartd
-# REQUIRE: DAEMON
-# BEFORE: LOGIN
+# REQUIRE: LOGIN
# KEYWORD: shutdown nojail
-
+#
# Define these smartd_* variables in one of these files:
-# /etc/rc.conf
-# /etc/rc.conf.local
-# /etc/rc.conf.d/smartd
+# /etc/rc.conf
+# /etc/rc.conf.local
+# /etc/rc.conf.d/smartd
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
-#
-smartd_enable="${smartd_enable-NO}"
-smartd_pidfile="/var/run/smartd.pid"
. /etc/rc.subr
-name="smartd"
-rcvar=`set_rcvar`
+name=smartd
+rcvar=smartd_enable
+
+load_rc_config smartd
+
+: ${smartd_enable:="NO"}
+
+required_files=${smartd_config:="/usr/local/etc/smartd.conf"}
+pidfile=${smartd_pidfile:="/var/run/smartd.pid"}
+
command="/usr/local/sbin/smartd"
+command_args="-c ${required_files} -p ${pidfile}"
+
extra_commands="reload report"
reload_cmd="smartd_reload"
report_cmd="smartd_report"
-smartd_reload()
-{
- rc_pid=$(check_pidfile $pidfile $command)
- if [ -z "$rc_pid" ]; then
- [ -n "$rc_fast" ] && return 0
- _run_rc_notrunning
- return 1
- fi
- echo 'Reloading smartd.'
- kill -HUP $rc_pid
-}
+start_precmd=smartd_prestart
-smartd_report()
+smartd_prestart()
{
- rc_pid=$(check_pidfile $pidfile $command)
- if [ -z "$rc_pid" ]; then
- [ -n "$rc_fast" ] && return 0
- _run_rc_notrunning
- return 1
- fi
- echo 'Checking SMART devices now.'
- kill -USR1 $rc_pid
+ case "${smartd_flags}" in
+ -p*|*-p*)
+ err 1 'smartd_flags includes the -p option, use smartd_pidfile instead'
+ ;;
+ esac
}
-load_rc_config $name
+smartd_reload()
+{
+ local status
-: ${smartd_config="/usr/local/etc/smartd.conf"}
-: ${smartd_flags="-c ${smartd_config}"}
+ if ! status=`run_rc_command status 2>&1`; then
+ echo $status
+ return 1
+ fi
+ echo 'Reloading smartd.'
+ kill -HUP $rc_pid
+}
-pidfile="${smartd_pidfile}"
-required_files="${smartd_config}"
+smartd_report()
+{
+ local status
-case "${smartd_flags}" in
-*-p\ *)
- echo "ERROR: \$smartd_flags includes -p option." \
- "Please use \$smartd_pidfile instead."
- exit 1
- ;;
-*)
- smartd_flags="-p ${pidfile} ${smartd_flags}"
- ;;
-esac
+ if ! status=`run_rc_command status 2>&1`; then
+ echo $status
+ return 1
+ fi
+ echo 'Checking SMART devices now.'
+ kill -USR1 $rc_pid
+}
run_rc_command "$1"