使用python中的subprocess.popen杀死adb

时间:2018-04-09 07:59:31

标签: python subprocess adb pid kill

我需要从我的python库运行命令adb get-state。

我用过

subprocess.popen

执行命令并使用pid终止进程。

如果adb守护程序未处于运行状态,adb进程将创建一个额外的adb进程并终止启动守护程序后创建的第一个进程(即使手动也是如此)。

因此我无法杀死子进程打开的adb进程,因为它有第一个adb进程的pid(已经终止)

有什么方法可以杀死从python执行命令的真正的adb进程。

1 个答案:

答案 0 :(得分:0)

我建议你在开始新的adb之前杀死adb的所有正在运行的进程。以下是一些示例代码,可以在Windows环境下杀死已经运行的进程。

此代码会终止任何已在运行的adb进程,然后为adb打开一个新的进程守护进程

示例代码:

import subprocess
import os
p = subprocess.Popen("tasklist", stdout=subprocess.PIPE)

RunningProcessLIst = p.stdout.readlines()
print("Kill all running instances of adb.exe")
for runningPro in RunningProcessLIst :
    if "adb.exe" in str(runningPro) :

        os.system("taskkill /F /IM adb.exe")




process =subprocess.Popen("I:\\adb\\Win32\\adb.exe adb get-state") # you subprocesses call will be here

希望这有帮助