终止应用程序使用Python启动的“logcat”进程

2024-04-25 00:24:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个小的应用程序,点击这个按钮将启动“adb logcat”进程,但是在启动这个进程之后,我们必须发出Ctrl+C命令来停止它。 我想让它通用,所以不想使用Ctrl+C命令,而是想在几秒钟后(比如5秒)自行终止它。在

点击按钮时开始执行的代码是:

def LOGGER():
    buildID=os.popen("adb shell getprop ro.build.id").read().strip()
    device=os.popen("adb shell getprop ro.product.device").read().strip()
    Log = ("D:\\Profiles\\hjv743\\Desktop\\Logs\\"+device+"_"+buildID)
    if not os.path.isdir(Log):
        os.mkdir(Log)
    os.system("adb pull /data/logger "+Log+"\\flash")
    os.system("adb pull /sdcard-ext/logger "+Log+"\\sdcard-ext")

我尝试过使用进程的pid来终止进程,但它没有终止它,它继续在后台运行(不用说进程名总是“logcat”,因为进程是adb logcat)

同样,在这个完整的过程中,我的应用程序在进程运行时保持挂起状态,因此我无法使用另一个按钮(使用Tkinter)来终止正在运行的进程。所以我唯一的选择就是在一段时间后自动终止它。 这对我的应用程序非常重要,因为我不能在整个过程中与它交互。在

我这样做是错误的吗?还有其他方法可以做同样的过程吗。我是否可以在后台启动(adb logcat)进程,并再引入一个按钮来获取pid并手动终止它。在

感谢任何帮助。在


Tags: 命令log应用程序进程os过程deviceshell
2条回答

导入操作系统、系统

在操作系统(“adb logcat-d | grep-i行缓冲搜索字符串>;日志测试.txt“)

行缓冲->;用于将控制台输出复制到日志测试.txt在

-d->;防止logcat进程等待无限时间

如果不想无限期运行进程,可以使用“-d”标志。 如“adb logcat-d”。这样你就不必费心去终止进程了。:)

相关问题 更多 >