处理挂掉的守护进程和其相关信息

在写守护进程的时候,会涉及一些启动锁文件,进程id文件等信息。而当程序一旦挂掉(有时候可能是程序不工作,多线程引起的资源死锁等。),要强制关闭进程并且删除相关的文件信息。手动来操作,比较麻烦。写个程序会比较好:

import subprocess,re,sys

pidReg = re.compile("root\s+(\d+)\s")
def kill(process):
    p = subprocess.Popen("ps axu | grep py",shell=True,stdout=subprocess.PIPE)
    for pro in p.stdout.readlines():
        if pro.find(process)!=-1:
            pid = pidReg.findall(pro)[0]
            subprocess.call("kill -9 %s;rm -rf /usr/local/mm-bs/pid/%s.*" % (pid,process.split(".")[0]),shell=True)
            print "%s的进程id为%s,已被强制关闭!" % (process,pid)
            return 
    print "未找到%s!" % process

if __name__ == "__main__":
    args = sys.argv
    if len(args)!=2:
        print "格式错误!(kill.py processName)"
        sys.exit(1)

    try:
        kill(args[1].strip())
    except Exception,e:
        print e

代码中相关路径为我当前工作路径,请自行更改。

转载于:https://www.cnblogs.com/simayixin/archive/2011/04/11/2012138.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值