2017-05-03 77 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()