python相同程序执行结果不同,多个相同名称进程的情况下 python脚本监控某个进程...

多个相同名称进程的情况下 python脚本监控某个进程

若一台机器上同时运行着多个相同名称的进程(进程号是不同的),我们应该如何监控这些进程是否还在正常运行呢?

如下图:

b5064a667129935c63773b244bc6cea5.png

正在运行着两个相同名称的进程

下面这个脚本实现了每隔10秒钟,检测一次每个进程是否还在正常运行,若不正常运行则重新启动:

vi /data/server/bin/python/monity.py#encoding:utf-8

import os

import commands

import time

def monitypid():

while True:

os.system('> /data/server/server-lszc/dirfile')

alldir=os.popen("ls -l /proc/ | grep '^d' |awk '{print $9}'").readlines()     #获取/proc/目录下所有的目录

for dir in alldir:

try:

newdir=dir.strip()

os.chdir('/proc/'+newdir)         #改变当前的目录

os.system('ls -l >> /data/server/server-lszc/dirfile 2> /dev/null')

except:

pass

DBServerfile=commands.getoutput('cat /data/server/server-lszc/dirfile | grep /data/server/server-lszc/DBServer')            #这个grep是关键

if not DBServerfile:                #若newpathfile值为空,则重新启动进程启动脚本

os.system('bash /data/server/server-lszc/start.sh')

os.system('echo $(date +%F-%H:%M:%S) >> /var/log/DBServer.log')

os.system('echo "/data/server/server-lszc/DBServer is reload" >> /var/log/DBServer.log')

time.sleep(10)                     #每10秒钟检测一次

if __name__ == '__main__':

monitypid()

nohup python /data/server/bin/python/monity.py &             #放在后台运行

写到/etc/rc.local,设置开机自动启动

注意:

所有的进程都会在/proc/目录下形成一个以进程号命令的目录,如下:

c749789ac9e7cb55dea2804344e795d3.png

我们进入1548这个目录看下:

cd 1548

d5a3b4f115822487fb87160675409a90.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值