Linux下同进程多进程号实时监控,linux下同


一、需求:

Linux上对一个进程名称可能会对应的多个进程号的进程进行监控,如果有多个则输出到一个日志文件。

以上问题针对的是一个定时程序还未运行结束,到下一个时刻程序又运行起来了,避免造成重复调用接口出错。

二、解决:

#!/bin/sh
#(sh pid_monitor.sh)&   #被监控的进程放在后台运行
#export LANG=en_US.utf-8
while true       #死循环不断监控后台运行的进程
do
    pid_num=`ps -ef | grep -v grep|grep ROOT_SUB_i2_data| awk '{print $2}'|wc -l`  #取后台运行程序的进程号数量


    if [ $pid_num  -gt 1 ];         #判断被监控的进程数是否大于1,注意分号,shell和python是有区别的
    then
        echo '监控到多个异常进程:' >>pid_monitor.log
        ps -ef |grep -v grep|grep ROOT_SUB_i2_data| awk '{print $2,$5}' >>pid_monitor.log #打印进程号和启动时间
    else
        echo `date` '只监控到的进程个数为:' $pid_num '' >>pid_monitor.log
        sleep 30 #休息30秒 
    fi
done

 

 

三、参考

http://blog.chinaunix.net/uid-30106268-id-5030040.html

http://www.jb51.net/article/34332.htm

相关内容