In the previous blog, once wrote the implementation of automated test procedures, now developers need to know the process of being tested (this refers to the main process running on Linux) before the abnormal exit of the process state, such as memory usage, CPU usage, and so on.
A shell script is used to implement the running state of the specified process. directly on the code.
#!/bin/sh echo "' Date '" echo "Start $---------" echo "" #每十秒监视一下 sec=10 #取得指定进程名为mainAPP, memory usage, process running state, process name Eval $ (PS | grep "Mainapp" | Grep-v grep | awk {' printf (meminfo=%s;mystatus=%s;pname=%s, $3,$4,$5) '}) echo $pName $myStatus $memInfo testprg= "" While [-N "$pName "-A" $myStatus "!=" Z "] do echo"----------' Date '---------------------"echo $pName $myStatus $memInfo Sleep
$sec ### #You must initialize them again!!!!! Pname= "" mystatus= "" meminfo= "" eval $ (ps | grep "Mainapp" | grep-v grep | awk {' printf ("meminfo=%s;mystatus= %s;pname=%s ", $3,$4,$5) '}) testprg= ' PS | grep "Mytester" | Grep-v grep | awk ' {print $} ' if [-Z ' $TESTPRG]; Then break fi # #注意一定要再次初始化为空 testprg= "do echo" End $---($pName, $myStatus, $TESTPRG)--------------- ----"If [-Z" $pName "]; Then # # #发现测被测试程序异常退出后, stop the test program Killall mytester echo "Stop Testprogram Mytester" fi echo "' Date '" echo "---- -----------Current Status------------------"PS | Grep-e "mainapp| Subapp "| Grep-v grep echo ""
The
Sample implements the state of the process every 10s read, it is then shown to continue monitoring when the discovery process exists and the state is non-Z (not zombie), but when the test program completes or exits unexpectedly, the script exits the monitoring loop, and after exiting the loop, prints out the state of the specified process.