diff --git a/scripts/dprocess.sh b/scripts/dprocess.sh index 3fb294e28db24c235d6e17817cd4cd37dd2b18e6..b680f43b227b793936a2d62e30809eb4ea15e026 100755 --- a/scripts/dprocess.sh +++ b/scripts/dprocess.sh @@ -8,6 +8,7 @@ # 日志文件最大为5MB maxlogsize=5242880 +logdir=/data/processlog function createProcessfile(){ process_name=($(pm list packages -3 | sed 's/package://g')) @@ -41,6 +42,7 @@ function emptyProcess(){ for process in ${process_name[*]} do process_stacknum=`am stack list | grep $process | wc -l` + sleep 1 process_tasknum=`ps | grep $process |wc -l` if [ $process_tasknum -ne 0 ] && [ $process_stacknum -eq 0 ];then date >> $logdir/emptyprocesslog.txt @@ -66,13 +68,45 @@ function rmLog(){ fi } +function qemu_pipe_judge(){ +count=0 +for i in $(seq 1 +1 10) +do + qemu_pipe_netstat=`netstat -anp | grep qemu_pipe | grep CONNECTING` + if [ $? = 0 ];then + count=`expr $count + 1` + sleep 1 + fi +done +if [ $count -eq 10 ];then + system_server_pid=`ps | grep system_server | xargs -n1 | sed -n 2p` + date >> $logdir/system_server.txt + ps | grep system_server >> $logdir/system_server.txt + kill -9 $system_server_pid +fi +} + while(true) do - createProcessfile - createLogdir - logdir=/data/processlog - orphanProcess - emptyProcess - rmLog - sleep 100 + for i in $(seq 1 +1 10) + do + if [ $i -eq 1 ];then + createProcessfile + createLogdir + qemu_pipe_judge + orphanProcess + emptyProcess + rmLog + elif [ $i -eq 10 ];then + createProcessfile + createLogdir + orphanProcess + emptyProcess + rmLog + else + createLogdir + qemu_pipe_judge + fi + sleep 10 + done done