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