wuwei
2025-05-30 45cb80798550f522a5b035a677206e86d067a786
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#########################################################################
# File Name: monitor.sh
# Author: 
# mail: 
# Created Time: Sat 28 Nov 2015 02:03:50 AM UTC
# 2015-12-19: add sd card mount detect , if mount as ro , then remount as rw
#########################################################################
#!/bin/sh
 
app_path=/usr/local/app
backup_path=/usr/local/backup
 
mountSd=/usr/local/etc/mount_sd.sh
powerLog=/work/data/power.log
wtdog="/usr/local/script/wtd -f"
appEnv="/work/app.ini"
appEnvDef="/usr/local/default/app.ini"
#########################################################################
 
ReMountScript=/tmp/remount
poweroffFile=/tmp/poweroff  # system poweroff flag file
recoderTime=/work/data/lastTime
 
intervalTime=6   #检测周期(s)
#########################################################################
Log=/tmp/log.txt
#########################################################################
 
 
#########################################################################
# fun name: findAppPathReStart
# in para : app name 
#########################################################################
findAppPathReStart()
{
    proName=$1
    echo "***restart $proName***"
    if [ -f $app_path/$proName ]
    then
            echo "start $proName"
        if [ $proName = "linkage" ]
        then
            enable=`jsoner -g /work/sysConfig.json linkage`
            if [ $enable -eq 1 ]
            then
                $app_path/$proName &
            fi
         else 
            $app_path/$proName &
        fi
    else
            echo "start back $proName"
        $backup_path/$proName &
    fi
    return 0;
}
#########################################################################
# fun name: detectProgram
# in para : app name 
#########################################################################
detectProgram()
{
    proName=$1
    proPid=0
 
    proPid=`pidof $proName`
    if [ $? -eq 0 ]; then
        echo "find $proName running, proPid: $proPid" >> /dev/null
    else 
        echo "$proName is not run"
        findAppPathReStart $proName
    fi
 
    return 0;
}
 
detectPowerOff()
{
    counter=0;
    while true 
    do
        if [ -f $poweroffFile ]
    then 
        echo "poweroff..."
        pofftime=`date  '+%Y/%m/%d %H:%M:%S: '`
        echo "$pofftime 系统断电" >> $powerLog
        sleep 5
        #reboot
    fi
        
    counter=`expr $counter + 1`
        if [ $counter -eq $intervalTime ]
    then 
        break;
    fi
    sleep 1
     done
}
 
detectTempFile()
{
    ls /tmp/ | grep "temp" >> /dev/null
    if [ $? -eq 0 ]
    then 
        rm /tmp/temp-* 
    fi
}
#########################################################################
#start main process 
#
#########################################################################
 
 
echo "device IotNetGate start..."
source /etc/profile
 
if [ ! -f $appEnv ]
then 
    echo "app env file not found, copy from default."
    cp $appEnvDef $appEnv
fi
 
while true
do 
    source $appEnv
    for i in $applist 
    do
        detectProgram $i
    done
    
    sleep $intervalTime
    
    #detectPowerOff
     
    detectTempFile
    nowtime=`date  '+%Y/%m/%d %H:%M:%S: '`
    echo "$nowtime" > $recoderTime
done