簡體   English   中英

殺死在python中用subprocess.popen打開的adb

[英]kill adb opened with subprocess.popen in python

我需要從我的python庫運行命令adb get-state。

我用了

subprocess.popen

執行命令並使用pid終止進程。

如果adb守護程序未處於運行狀態,則adb進程將創建一個額外的adb進程,並終止啟動該守護程序后創建的第一個進程(甚至手動啟動該進程)。

因此,我無法殺死由子進程打開打開的adb進程,因為它具有第一個adb進程的pid(已經終止)

有什么辦法可以殺死真正的從python執行命令的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

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM