######################################################################### # 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 msg="/usr/sbin/dclient -s " wtdog="/usr/local/script/wtd -f" ######################################################################### gate=fzBus gui=gui db=DataBase svr=svr main=MainControl net=NetModule dc=dclient mul=MulticastIP lk=linkage #arrayAppName=("$center" "$para" "$svr" "$dc") arrayAppName=" $main $dc $net $gate $svr $lk " 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" $msg "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" $msg "$proName is not run" findAppPathReStart $proName fi return 0; } detectPowerOff() { counter=0; while true do if [ -f $poweroffFile ] then echo "poweroff..." $msg "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 # ######################################################################### $msg "device IotNetGate start..." source /etc/profile while true do for i in $arrayAppName #${arrayAppName[@]} do detectProgram $i done sleep $intervalTime #detectPowerOff detectTempFile nowtime=`date '+%Y/%m/%d %H:%M:%S: '` echo "$nowtime" > $recoderTime done