-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshutdown.sh
61 lines (53 loc) · 1.62 KB
/
shutdown.sh
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
#!/bin/sh
##########################################################################
# Yet Another Monitor (YAMon)
# Copyright (c) 2013-present Al Caughey
# All rights reserved.
#
# Call this file from the Administration-->Commands tab in the DD-WRT GUI
#
##########################################################################
d_baseDir=$(cd "$(dirname "$0")" && pwd)
source "$d_baseDir/config.file"
source "${d_baseDir}/includes/versions.sh"
source "${d_baseDir}/includes/defaults.sh"
source "$d_baseDir/includes/util$_version.sh"
source "$d_baseDir/strings/$_lang/strings.sh"
# stop the script by removing the locking directory
ir=$(ps | grep -v "grep" | grep -c "yamon$_file_version")
if [ ! -d $_lockDir ] && [ "$ir" -eq "0" ]; then
echo -e "$_s_notrunning"
exit 0
fi
rmdir $_lockDir
if [ "$ir" -eq "0" ]; then
echo -e "$_s_stopped"
exit 0
fi
if [ "$ir" -gt "0" ]; then
echo -e "$_s_stopping"
n=0
while [ true ] ; do
n=$(($n + 1))
ir=$(ps | grep -v "grep" | grep -c "yamon$_file_version")
[ "$n" -gt "$_updatefreq" ] || [ "$ir" -lt "1" ] && break;
echo -n '.'
sleep 1
done
fi
ir=$(ps | grep -v "grep" | grep -c "yamon$_file_version")
if [ "$ir" -gt "0" ]; then
echo -e "${_nl}Killing $ir Zombie process(es)?!?"
echo -e "$(ps | grep -v 'grep' | grep 'yamon$_file_version')"
while [ true ] ; do
pid=$(ps | grep -v grep | grep yamon$_file_version | cut -d' ' -f1)
[ -z "$pid" ] && break
[ "$o_pid" == "$pid" ] && echo -e "Uh-oh! did not kill process: $pid ?!? try rebooting your router" && break
kill $pid
echo -e "killed process: $pid"
sleep 1
o_pid=$pid
done
fi
logger "YAMON:" "Shutdown"
echo -e "$_s_stopped"