zoukankan      html  css  js  c++  java
  • Shell脚本之监视指定进程的执行状态

    在之前的博客中,以前写了自己主动化測试程序的实现方法,如今开发人员须要知道被測试的进程(在此指执行在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(非僵尸)时,继续监视,可是当測试程序执行完成或是异常退出时,该脚本也会退出监视循环。退出循环后

  • 相关阅读:
    移动端必备rem布局
    个人工作经历、近些日来一些面试总结
    JavaScript面向对象核心知识归纳
    微信开发工具下载地址
    每天运动步数周月切换显示
    爬虫-requests
    django请求生命周期,FBV和CBV,ORM拾遗,Git
    Django + Uwsgi + Nginx 的生产环境部署
    沈阳润才教育CRM
    网络编程
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7245188.html
Copyright © 2011-2022 走看看