xref: /openbmc/openbmc/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/initd.smartd (revision eb8dc40360f0cfef56fb6947cc817a547d6d9bc6)
1*eb8dc403SDave Cobbley#! /bin/sh
2*eb8dc403SDave Cobbley
3*eb8dc403SDave Cobbley# smartmontools init file for smartd
4*eb8dc403SDave Cobbley# Copyright (C) 2002-8 Bruce Allen <smartmontools-support@lists.sourceforge.net>
5*eb8dc403SDave Cobbley# $Id: smartd.initd.in 3360 2011-06-06 19:25:36Z chrfranke $
6*eb8dc403SDave Cobbley
7*eb8dc403SDave Cobbley# For RedHat and cousins:
8*eb8dc403SDave Cobbley# chkconfig: - 60 60
9*eb8dc403SDave Cobbley# description: Self Monitoring and Reporting Technology (SMART) Daemon
10*eb8dc403SDave Cobbley# processname: smartd
11*eb8dc403SDave Cobbley
12*eb8dc403SDave Cobbley# For SuSE and cousins
13*eb8dc403SDave Cobbley### BEGIN INIT INFO
14*eb8dc403SDave Cobbley# Provides:                   smartd
15*eb8dc403SDave Cobbley# Required-Start:             $syslog $remote_fs
16*eb8dc403SDave Cobbley# Should-Start:               sendmail
17*eb8dc403SDave Cobbley# Required-Stop:              $syslog $remote_fs
18*eb8dc403SDave Cobbley# Should-Stop:                sendmail
19*eb8dc403SDave Cobbley# Default-Start:              2 3 4 5
20*eb8dc403SDave Cobbley# Default-Stop:               0 1 6
21*eb8dc403SDave Cobbley# Short-Description:          Monitors disk and tape health via S.M.A.R.T.
22*eb8dc403SDave Cobbley# Description:                Start S.M.A.R.T. disk and tape monitor.
23*eb8dc403SDave Cobbley### END INIT INFO
24*eb8dc403SDave Cobbley
25*eb8dc403SDave Cobbley# This program is free software; you can redistribute it and/or modify it
26*eb8dc403SDave Cobbley# under the terms of the GNU General Public License as published by the Free
27*eb8dc403SDave Cobbley# Software Foundation; either version 2, or (at your option) any later
28*eb8dc403SDave Cobbley# version.
29*eb8dc403SDave Cobbley# You should have received a copy of the GNU General Public License (for
30*eb8dc403SDave Cobbley# example COPYING); if not, write to the Free Software Foundation, Inc., 675
31*eb8dc403SDave Cobbley# Mass Ave, Cambridge, MA 02139, USA.
32*eb8dc403SDave Cobbley# This code was originally developed as a Senior Thesis by Michael Cornwell
33*eb8dc403SDave Cobbley# at the Concurrent Systems Laboratory (now part of the Storage Systems
34*eb8dc403SDave Cobbley# Research Center), Jack Baskin School of Engineering, University of
35*eb8dc403SDave Cobbley# California, Santa Cruz. http://ssrc.soe.ucsc.edu/.
36*eb8dc403SDave Cobbley
37*eb8dc403SDave Cobbley# Uncomment the line below to pass options to smartd on startup.
38*eb8dc403SDave Cobbley# Note that distribution specific configuration files like
39*eb8dc403SDave Cobbley# /etc/{default,sysconfig}/smartmontools might override these
40*eb8dc403SDave Cobbley#smartd_opts="--interval=1800"
41*eb8dc403SDave Cobbley
42*eb8dc403SDave CobbleySMARTD_BIN=/usr/sbin/smartd
43*eb8dc403SDave CobbleySMARTDPID=/var/run/smartd.pid
44*eb8dc403SDave Cobbley[ -x $SMARTD_BIN ] || exit 0
45*eb8dc403SDave CobbleyRET=0
46*eb8dc403SDave Cobbley
47*eb8dc403SDave Cobbley# source configuration file
48*eb8dc403SDave Cobbley[ -r /etc/default/rcS ] && . /etc/default/rcS
49*eb8dc403SDave Cobbley[ -r /etc/default/smartmontools ] && . /etc/default/smartmontools
50*eb8dc403SDave Cobbley
51*eb8dc403SDave Cobbleysmartd_opts="--pidfile $SMARTDPID $smartd_opts"
52*eb8dc403SDave Cobbley
53*eb8dc403SDave Cobbleycase "$1" in
54*eb8dc403SDave Cobbley	start)
55*eb8dc403SDave Cobbley		if [ "$start_smartd" != "yes" ]; then
56*eb8dc403SDave Cobbley			[ "$VERBOSE" != "no" ] && echo "Not starting S.M.A.R.T. daemon smartd, disabled via /etc/default/smartmontools"
57*eb8dc403SDave Cobbley			exit 0
58*eb8dc403SDave Cobbley		fi
59*eb8dc403SDave Cobbley		echo -n "Starting S.M.A.R.T. daemon: smartd"
60*eb8dc403SDave Cobbley		if start-stop-daemon --start --quiet --pidfile $SMARTDPID \
61*eb8dc403SDave Cobbley			--exec $SMARTD_BIN -- $smartd_opts; then
62*eb8dc403SDave Cobbley			echo "."
63*eb8dc403SDave Cobbley		else
64*eb8dc403SDave Cobbley			echo " (failed)"
65*eb8dc403SDave Cobbley			RET=1
66*eb8dc403SDave Cobbley		fi
67*eb8dc403SDave Cobbley		;;
68*eb8dc403SDave Cobbley	stop)
69*eb8dc403SDave Cobbley		echo -n "Stopping S.M.A.R.T. daemon: smartd"
70*eb8dc403SDave Cobbley		start-stop-daemon --stop --quiet --oknodo --pidfile $SMARTDPID
71*eb8dc403SDave Cobbley		echo "."
72*eb8dc403SDave Cobbley		;;
73*eb8dc403SDave Cobbley	restart)
74*eb8dc403SDave Cobbley		$0 stop
75*eb8dc403SDave Cobbley		$0 start
76*eb8dc403SDave Cobbley		;;
77*eb8dc403SDave Cobbley	force-reload)
78*eb8dc403SDave Cobbley		$0 reload || $0 restart
79*eb8dc403SDave Cobbley		;;
80*eb8dc403SDave Cobbley	reload)
81*eb8dc403SDave Cobbley		echo -n "Reload S.M.A.R.T. daemon: smartd"
82*eb8dc403SDave Cobbley		if start-stop-daemon --stop --quiet --signal 1 \
83*eb8dc403SDave Cobbley			--pidfile $SMARTDPID; then
84*eb8dc403SDave Cobbley			echo "."
85*eb8dc403SDave Cobbley		else
86*eb8dc403SDave Cobbley			echo " (failed)"
87*eb8dc403SDave Cobbley			RET=1
88*eb8dc403SDave Cobbley		fi
89*eb8dc403SDave Cobbley		;;
90*eb8dc403SDave Cobbley	report)
91*eb8dc403SDave Cobbley		echo -n "Checking SMART devices now"
92*eb8dc403SDave Cobbley		if start-stop-daemon --stop --quiet --signal 10 \
93*eb8dc403SDave Cobbley			--pidfile $SMARTDPID; then
94*eb8dc403SDave Cobbley			echo "."
95*eb8dc403SDave Cobbley		else
96*eb8dc403SDave Cobbley			echo " (failed)"
97*eb8dc403SDave Cobbley			RET=1
98*eb8dc403SDave Cobbley		fi
99*eb8dc403SDave Cobbley		;;
100*eb8dc403SDave Cobbley	status)
101*eb8dc403SDave Cobbley		if pidof $SMARTD_BIN >/dev/null; then
102*eb8dc403SDave Cobbley			echo "$SMARTD_BIN is running."
103*eb8dc403SDave Cobbley		else
104*eb8dc403SDave Cobbley			echo "$SMARTD_BIN is not running."
105*eb8dc403SDave Cobbley			RET=1
106*eb8dc403SDave Cobbley		fi
107*eb8dc403SDave Cobbley		;;
108*eb8dc403SDave Cobbley	*)
109*eb8dc403SDave Cobbley		echo "Usage: $0 {start|stop|restart|force-reload|reload|report|status}"
110*eb8dc403SDave Cobbley		exit 1
111*eb8dc403SDave Cobbleyesac
112*eb8dc403SDave Cobbleyexit $RET
113