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

时间:2022-09-08 19:35:46

一、需求:

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

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

二、解决:

#!/bin/sh
#(nohup pid_monitor.sh &) #被监控的进程放在后台运行,需要用nohup不挂断的执行
#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