2017-05-03 88 views
0
>>> os.system('adb shell pidof logcat') 

750 4774 

0 
>>> os.system('adb shell ps | grep logcat') 

root  750 1  8760 1720 __skb_recv 7f8f5a5edc S /system/bin/logcat 

root  4774 4681 8708 1696 __skb_recv 7f98efeedc S logcat 

有2个logcat进程。 如何杀死这两个进程ID:750 4774如何在python中按名称杀死进程

回答

2
import subprocess 
subprocess.call(['taskkill.exe', '/IM', 'logcat']) 

您可能需要使用shell=True,如果它不能找到taskkill.exe。

+1

我想上面的一个。但它抛出错误:Traceback(最近一次调用最后一次): 文件“”,第1行,在 文件“C:\ Python27 \ lib \ subprocess.py”,第522行,致电 返回Popen(* popenargs ,** kwargs).wait() 文件“C:\ Python27 \ lib \ subprocess.py”,第709行,在__init__中 errread,errwrite) 文件“C:\ Python27 \ lib \ subprocess.py” 957,在_execute_child startupinfo) WindowsError:[错误2]系统找不到指定的文件 – panchanan

+1

等待,如果这是Windows代码,为什么不只是'taskkill.exe/IM logcat'? – ShadowRanger

+0

@ShadowRanger:一个很好的观点。我再次更新了答案。 –

2

你可以尝试psutil

import psutil 

PROC_NAME = "abc.exe" 

for proc in psutil.process_iter(): 
    # check whether the process to kill name matches 
    if proc.name() == PROC_NAME: 
     proc.kill()