summaryrefslogtreecommitdiffhomepage
path: root/contrib/package/freifunk-watchdog/files/freifunk-watchdog.init
blob: d6ede09b61076e6cf9c8798640d162ba550f2816 (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
#!/bin/sh /etc/rc.common

START=99
PID=/var/run/ffwatchd.pid
BIN=/usr/sbin/ffwatchd

boot()
{
	# If watchdog service is enabled, install cronjob, create device node and start daemon
	if /etc/init.d/freifunk-watchdog enabled 2>/dev/null; then
		if ! grep -q "$BIN" /etc/crontabs/root 2>/dev/null; then
			echo "* * * * *	$BIN running || /etc/init.d/freifunk-watchdog restart" >> /etc/crontabs/root
		fi

		mknod /dev/watchdog c 10 130

		start
		
	# If service is disabled, find and remove related cronjob
	elif grep -q "$BIN" /etc/crontabs/root 2>/dev/null; then
		sed -i -e "\\'$BIN'd" /etc/crontabs/root
	fi
}

start()
{
	start-stop-daemon -q -b -m -p $PID -x $BIN -S
}

stop()
{
	start-stop-daemon -q -p $PID -x $BIN -K

	if ! /etc/init.d/freifunk-watchdog enabled; then
		if grep -q "$BIN" /etc/crontabs/root 2>/dev/null; then
			sed -i -e "\\'$BIN'd" /etc/crontabs/root
		fi
	fi
}