处理挂掉的守护进程和其相关信息
在写守护进程的时候,会涉及一些启动锁文件,进程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
代码中相关路径为我当前工作路径,请自行更改。