######################################################################### # 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 if [ $proName = "start_snmpd" ] then enable1=`jsoner -g /work/sysConfig.json snmp` if [ $enable1 -eq 1 ] then /usr/local/script/start_snmpd & else killall -9 snmpd fi else echo "start back $proName" $backup_path/$proName & fi 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