aboutsummaryrefslogtreecommitdiff
path: root/system/earlyoom/rc.earlyoom
blob: 277050fefdfd484538085262280eb4057eb3c8f9 (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
#!/bin/sh
set -eu

. /etc/default/earlyoom

do_start() {
	if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null
	then
		echo "earlyoom is already running."
	else
		echo "Starting earlyoom..."
		nohup /usr/bin/earlyoom $EARLYOOM_ARGS > /var/log/earlyoom.log 2>&1 &
		echo "$!" > /var/run/earlyoom.pid
	fi
}

do_stop() {
	if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null
	then
		echo "Stopping earlyoom..."
		kill -15 "$(cat /var/run/earlyoom.pid)"
	else
		echo "earlyoom is not running."
	fi
}

do_force_stop() {
	if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null
	then
		echo "Killing earlyoom..."
		kill -9 "$(cat /var/run/earlyoom.pid)"
	else
		echo "earlyoom appears to not be running."
	fi
}

do_restart() {
	do_stop
	do_start
}

do_status() {
	if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null
	then
		echo "earlyoom is running with pid $(cat /var/run/earlyoom.pid)."
	else
		echo "earlyoom is not running."
	fi
}

case $1 in
	start)
		do_start
		;;
	stop)
		do_stop
		;;
	restart)
		do_restart
		;;
	force-stop)
		do_force_stop
		;;
	status)
		do_status
		;;
	*)
		echo "USAGE: rc.earlyoom (start|stop|force-stop|restart|status)"
		;;
esac