Shell脚本实现监视指定进程的运行状态
2024-08-28 09:30:47
在之前的博客中,曾经写了自动化测试程序的实现方法,现在开发者需要知道被测试的进程(在此指运行在LINUX上的主进程的)在异常退出之前的进程的运行状态,例如内存的使用率、CPU的使用率等。
现用shell脚本实现指定进程的运行状态。直接上代码。
#!/bin/sh
echo "`date`"
echo "Start $0---------"
echo ""
#每十秒监视一下
sec=10
#取得指定进程名为mainAPP,内存的使用率,进程运行状态,进程名称
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 $0}'`
if [ -z "$testPrg" ]; then
break
fi
##注意一定要再次初始化为空
testPrg=""
done
echo "End $0---($pName,$myStatus,$testPrg)-------------------"
if [ -z "$pName" ]; then
###发现测被测试程序异常退出后,停止测试程序
killall MyTester
echo "stop TestProgram MyTester"
fi
echo "`date`"
echo "---------------Current Status------------------"
ps | grep -E "mainApp|SubApp" | grep -v grep
echo ""
样实现了每10s读取一下进程的状态,然后显示出来,当发现进程存在并且状态非Z(非僵尸)时,继续监视,但是当测试程序执行完毕或是异常退出时,该脚本也会退出监视循环,退出循环后,打印出指定进程的状态。
最新文章
- 【饿了么】招聘Java开发工程师、架构师
- xampp下创建多个虚拟网站目录
- 将BootstrapJS和AngularJS结合使用以及为什么不用jQuery
- AlertDialog禁止返回键
- free命令
- 新版本 JSAPI微信支付V3 C# DEMO
- java项目导出jar文件时指定main方法的类
- 由setTimeout()里的this引出的this
- knockout+echarts
- Android 5.x新特性之elevation(阴影),tinting(着色)以及clipping(剪裁)
- java版微信公众平台自定义菜单创建代码实现
- HDU 5831 Rikka with Parenthesis II
- bzoj3110: [Zjoi2013]K大数查询 【cdq分治&;树套树】
- vue和angular的区别:
- vue根据路由变换,切换导航栏样式
- 《Linux就该这么学》第十三天课程
- tensorflow读取本地MNIST数据集
- maven-assembly-plugin 入门指南
- JDK自带观察者的使用
- jQuery验证控件jquery.validate.js的使用介绍