我需要从我的python库运行命令adb get-state。
我用过
subprocess.popen
执行命令并使用pid终止进程。
如果adb守护程序未处于运行状态,adb进程将创建一个额外的adb进程并终止启动守护程序后创建的第一个进程(即使手动也是如此)。
因此我无法杀死子进程打开的adb进程,因为它有第一个adb进程的pid(已经终止)
有什么方法可以杀死从python执行命令的真正的adb进程。
答案 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
希望这有帮助