一、需求:
Linux上对一个进程名称可能会对应的多个进程号的进程进行监控,如果有多个则输出到一个日志文件。
以上问题针对的是一个定时程序还未运行结束,到下一个时刻程序又运行起来了,避免造成重复调用接口出错。
二、解决:
#!/bin/sh #(sh pid_monitor.sh)& #被监控的进程放在后台运行 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` ‘只监控到1个进程数,正常...‘ >>pid_monitor.log sleep 30 #休息30秒 fi done
三、参考
http://blog.chinaunix.net/uid-30106268-id-5030040.html
http://www.jb51.net/article/34332.htm
时间: 2024-11-05 14:50:03