用Python来kill掉Linux进程


Linux下面按进程的命令名字kill掉进程稍稍有点麻烦,就用python写了一个简单的小工具,不过目前这个工具还有点小问题,就是随便输入一个名字,执行ps aux|grep %name 命令,本身也产生一个进程,但是这个进程随即消失,以后kill的时候就找不到这个进程了。不过运行结果还是满意的。

xkill
#!/usr/bin/python

import os,re,sys

def kill_by_name(name):
cmd='ps aux|grep %s'%name
f=os.popen(cmd)
regex=re.compile(r'\w+\s+(\d+)\s+.*')
txt=f.read()
if len(txt)<5:
print 'there is no thread by name or command %s'%name
return

ids=regex.findall(txt)
cmd="kill %s"%' '.join(ids)
os.system(cmd)


if __name__=='__main__':
if len(sys.argv)==1:
name=raw_input("type the process command name:")
else:
name=sys.argv[1]
kill_by_name(name)

相关内容