]> git.proxmox.com Git - mirror_smartmontools-debian.git/blob - debian/smartmontools.init
Merge branch 'upstream'
[mirror_smartmontools-debian.git] / debian / smartmontools.init
1 #!/bin/sh -e
2 #
3 # smartmontools init.d startup script
4 #
5 # (C) 2003,04,07 Guido Günther <agx@sigxcpu.org>
6 #
7 # loosely based on the init script that comes with smartmontools which is
8 # copyrighted 2002 by Bruce Allen <smartmontools-support@lists.sourceforge.net>
9 #
10 ### BEGIN INIT INFO
11 # Provides: smartmontools
12 # Required-Start: $syslog $remote_fs
13 # Required-Stop: $syslog $remote_fs
14 # Default-Start: 2 3 4 5
15 # Default-Stop: 0 1 6
16 # Short-Description: SMART monitoring daemon
17 ### END INIT INFO
18
19 SMARTCTL=/usr/sbin/smartctl
20 SMARTD=/usr/sbin/smartd
21 SMARTDPID=/var/run/smartd.pid
22 [ -x $SMARTCTL ] || exit 0
23 [ -x $SMARTD ] || exit 0
24 . /lib/lsb/init-functions
25
26 RET=0
27
28 [ -r /etc/default/smartmontools ] && . /etc/default/smartmontools
29
30 smartd_opts="--pidfile $SMARTDPID $smartd_opts"
31
32 enable_smart() {
33 log_action_begin_msg "Enabling S.M.A.R.T."
34 for device in $enable_smart; do
35 log_action_cont_msg "$device"
36 if ! $SMARTCTL --quietmode=errorsonly --smart=on $device; then
37 log_action_cont_msg "(failed)"
38 RET=2
39 fi
40 done
41 log_action_end_msg 0
42 }
43
44 check_start_smartd_option() {
45 if [ ! "$start_smartd" = "yes" ]; then
46 log_warning_msg "Not starting S.M.A.R.T. daemon smartd, disabled via /etc/default/smartmontools"
47 return 1
48 else
49 return 0
50 fi
51 }
52
53 case "$1" in
54 start)
55 [ -n "$enable_smart" ] && enable_smart
56 if check_start_smartd_option; then
57 rm -f $SMARTDPID
58 log_daemon_msg "Starting S.M.A.R.T. daemon" "smartd"
59 if start-stop-daemon --start --quiet --pidfile $SMARTDPID \
60 --exec $SMARTD -- $smartd_opts; then
61 log_end_msg 0
62 else
63 log_end_msg 1
64 RET=1
65 fi
66 fi
67 ;;
68 stop)
69 log_daemon_msg "Stopping S.M.A.R.T. daemon" "smartd"
70 start-stop-daemon --stop --quiet --oknodo --pidfile $SMARTDPID
71 log_end_msg 0
72 ;;
73 reload|force-reload)
74 log_daemon_msg "Reloading S.M.A.R.T. daemon" "smartd"
75 if start-stop-daemon --stop --quiet --signal 1 \
76 --pidfile $SMARTDPID; then
77 log_end_msg 0
78 else
79 log_end_msg 1
80 RET=1
81 fi
82 ;;
83 restart)
84 if check_start_smartd_option; then
85 log_daemon_msg "Restarting S.M.A.R.T. daemon" "smartd"
86 start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $SMARTDPID
87 rm -f $SMARTDPID
88 if start-stop-daemon --start --quiet --pidfile $SMARTDPID \
89 --exec $SMARTD -- $smartd_opts; then
90 log_end_msg 0
91 else
92 log_end_msg 1
93 RET=1
94 fi
95 fi
96 ;;
97 *)
98 echo "Usage: /etc/init.d/smartmontools {start|stop|restart|reload|force-reload}"
99 exit 1
100 esac
101
102 exit $RET