aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-extended/smartmontools/files/initd.smartd
blob: 54adcb406b24cca69a91212f29087d0be2abe34b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#! /bin/sh

# smartmontools init file for smartd
# Copyright (C) 2002-8 Bruce Allen <smartmontools-support@lists.sourceforge.net>
# $Id: smartd.initd.in 3360 2011-06-06 19:25:36Z chrfranke $

# For RedHat and cousins:
# chkconfig: - 60 60
# description: Self Monitoring and Reporting Technology (SMART) Daemon
# processname: smartd 

# For SuSE and cousins
### BEGIN INIT INFO
# Provides:                   smartd
# Required-Start:             $syslog $remote_fs
# Should-Start:               sendmail
# Required-Stop:              $syslog $remote_fs
# Should-Stop:                sendmail
# Default-Start:              2 3 4 5
# Default-Stop:               0 1 6
# Short-Description:          Monitors disk and tape health via S.M.A.R.T.
# Description:                Start S.M.A.R.T. disk and tape monitor.
### END INIT INFO

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2, or (at your option) any later
# version. 
# You should have received a copy of the GNU General Public License (for
# example COPYING); if not, write to the Free Software Foundation, Inc., 675
# Mass Ave, Cambridge, MA 02139, USA.
# This code was originally developed as a Senior Thesis by Michael Cornwell
# at the Concurrent Systems Laboratory (now part of the Storage Systems
# Research Center), Jack Baskin School of Engineering, University of
# California, Santa Cruz. http://ssrc.soe.ucsc.edu/.

# Uncomment the line below to pass options to smartd on startup. 
# Note that distribution specific configuration files like
# /etc/{default,sysconfig}/smartmontools might override these
#smartd_opts="--interval=1800"

SMARTD_BIN=/usr/sbin/smartd
SMARTDPID=/var/run/smartd.pid
[ -x $SMARTD_BIN ] || exit 0
RET=0

# source configuration file
[ -r /etc/default/rcS ] && . /etc/default/rcS
[ -r /etc/default/smartmontools ] && . /etc/default/smartmontools

smartd_opts="--pidfile $SMARTDPID $smartd_opts"

case "$1" in
	start)
		if [ "$start_smartd" != "yes" ]; then
			[ "$VERBOSE" != "no" ] && echo "Not starting S.M.A.R.T. daemon smartd, disabled via /etc/default/smartmontools"
			exit 0
		fi
		echo -n "Starting S.M.A.R.T. daemon: smartd"
		if start-stop-daemon --start --quiet --pidfile $SMARTDPID \
			--exec $SMARTD_BIN -- $smartd_opts; then
			echo "."
		else
			echo " (failed)"
			RET=1
		fi
		;;
	stop)
		echo -n "Stopping S.M.A.R.T. daemon: smartd"
		start-stop-daemon --stop --quiet --oknodo --pidfile $SMARTDPID
		echo "."
		;;
	restart)
		$0 stop
		$0 start
		;;
	force-reload)
		$0 reload || $0 restart
		;;
	reload)
		echo -n "Reload S.M.A.R.T. daemon: smartd"
		if start-stop-daemon --stop --quiet --signal 1 \
			--pidfile $SMARTDPID; then
			echo "."
		else
			echo " (failed)"
			RET=1
		fi
		;;
	report)
		echo -n "Checking SMART devices now"
		if start-stop-daemon --stop --quiet --signal 10 \
			--pidfile $SMARTDPID; then
			echo "."
		else
			echo " (failed)"
			RET=1
		fi
		;;
	status)
		if pidof $SMARTD_BIN >/dev/null; then
			echo "$SMARTD_BIN is running."
		else
			echo "$SMARTD_BIN is not running."
			RET=1
		fi
		;;
	*)
		echo "Usage: $0 {start|stop|restart|force-reload|reload|report|status}"
		exit 1
esac
exit $RET