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