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(非僵尸)时,继续监视,可是当測试程序执行完成或是异常退出时,该脚本也会退出监视循环。退出循环后

  • 相关阅读:
    如何在Grid中做出快捷菜单效果?
    ExtJs FormPanel布局
    wpf 中获取ComboBox中选定的文本值
    delphi中的dbgrid使用
    Delphi修改Access密码,压缩与修复,建立Access数据库文件
    关于OS X系统root账号的激活及密码更改
    Delphi过程函数传递参数的几种方式
    Eclipse里的快捷键
    Delphi封装类到DLL
    Delphi Project 之工程选项(Project Options)
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7245188.html
Copyright © 2011-2022 走看看