码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2016-05-06 09:26:58      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

在写守护进程的时候,会涉及一些启动锁文件,进程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


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

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

标签:

原文地址:http://www.cnblogs.com/shouce/p/5464084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!