File: init

package info (click to toggle)
hddtemp 0.3-beta15-34
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 2,072 kB
  • ctags: 1,327
  • sloc: ansic: 10,617; sh: 4,484; makefile: 522; yacc: 288; perl: 19; sed: 16
file content (91 lines) | stat: -rw-r--r-- 2,691 bytes parent folder | download
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
#!/bin/sh
#
# skeleton	example file to build /etc/init.d/ scripts.
#		This file should be used to construct scripts for /etc/init.d.
#
#		Written by Miquel van Smoorenburg <miquels@cistron.nl>.
#		Modified for Debian GNU/Linux
#		by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Version:	@(#)skeleton  1.8  03-Mar-1998  miquels@cistron.nl
#

### BEGIN INIT INFO
# Provides:          hddtemp
# Required-Start:    $syslog $network
# Required-Stop:     $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: disk temperature monitoring daemon
# Description:       hddtemp is a disk temperature monitoring daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=hddtemp
DAEMON=/usr/sbin/hddtemp
DESC="disk temperature monitoring daemon"

DISKS="/dev/hd? /dev/sr? /dev/sg? /dev/sd?"
INTERFACE="0.0.0.0"
PORT="7634"
SEPARATOR="|"
RUN_SYSLOG="0"

# Reads config file (will override defaults above)
[ -r /etc/default/hddtemp ] && . /etc/default/hddtemp

if [ -n "$RUN_SYSLOG" -a "$RUN_SYSLOG" != "0" ] ; then
	SYSLOG_ARG="-S $RUN_SYSLOG"
fi

if [ "$RUN_DAEMON" = "true" -o "$RUN_DAEMON" = "yes" ] ; then
	DAEMON_ARG="-d -l $INTERFACE -p $PORT -s $SEPARATOR"
fi

[ -x "$DAEMON" ] || exit 0

. /lib/lsb/init-functions

case "$1" in
  start)
	# master switch
  	if [ -n "$DAEMON_ARG" -o -n "$SYSLOG_ARG" ] ; then
  		log_daemon_msg "Starting $DESC" "$NAME:"
		CDROMS_LIST="$(grep "^drive name:" /proc/sys/dev/cdrom/info 2>/dev/null | sed -e 's/^drive name:\t//g' -e 's/\t/ \/dev\//g')"
		CDROMS_LIST="$CDROMS_LIST $(grep -sl '^ide-scsi ' /proc/ide/hd*/driver | awk -F / '{ print "/dev/"$4 }')"
        	for disk in $DISKS ; do
			echo $CDROMS_LIST | grep -wq $disk && continue
			echo $DISKS_NOPROBE | grep -wq $disk && continue
			if /usr/sbin/hddtemp -wn $OPTIONS $disk 2>/dev/null | /bin/grep -q '^[0-9]\+$' ; then
				DISKS_LIST="$DISKS_LIST $disk";
			fi
		done
		if [ -n "$DISKS_LIST" ] || [ -n "$DISKS_NOPROBE" ] ; then
			start-stop-daemon --start --quiet --exec $DAEMON -- $DAEMON_ARG $SYSLOG_ARG $OPTIONS $DISKS_NOPROBE $DISKS_LIST
			ret=$?
			log_progress_msg "$DISKS_NOPROBE$DISKS_LIST."
			log_end_msg $ret
		else
			log_progress_msg "no disks with monitoring capability were found."
			log_end_msg 0
		fi
	fi
	;;
  stop)
	# master switch
  	if [ "$RUN_DAEMON" = "true" -o "$RUN_DAEMON" = "yes" -o "$SYSLOG" != "0" ] ; then
 		log_daemon_msg "Stopping $DESC" "$NAME"
		start-stop-daemon --stop --oknodo --exec $DAEMON --retry 30
		log_end_msg $?
	fi
	;;
  reload|restart|force-reload)
	$0 stop && $0 start
	;;
  *)
	echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0