【python】subprocess.Popen执行adb shell指令进入linux系统后连续使用指令,出现cmd窗口阻塞问题

问题描述

subprocess.Popen执行adb shell指令进入linux系统后出现cmd窗口阻塞问题,需要手动关闭cmd才会继续执行其他指令。

解决方案

1、cmd指令后面加入exit\n关闭exe进程

2、subprocess.Popen()添加内置参数creationflags=subprocess.CREATE_NO_WINDOW隐藏窗口弹出

参考代码

bash 复制代码
import subprocess
import os
def command(cmd):
    try:
        process =subprocess.Popen(["adb","shell"], shell=False, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, creationflags=subprocess.CREATE_NO_WINDOW)
        outs,error= process.communicate((cmd+'exit\n').encode())
        content = [z.strip() for z in outs.decode("gbk").split("\n") if z]
        print(*content,sep="\n")
    except Exception as e:
        process.kill()
        print(e, e.__traceback__.tb_lineno, '行')
        
command("grep 'app_id = 17' mnt/log/rmu.log\n")
相关推荐
梁正雄1 小时前
linux服务-Nginx+Tomcat+Redis之Session 共享 - 容器单机版
linux·nginx·tomcat
n***54382 小时前
【MySQL】MySQL内置函数--日期函数字符串函数数学函数其他相关函数
android·mysql·adb
linchare3 小时前
linux debian上只装mysql的客户端步骤
linux·mysql·debian
电子_咸鱼5 小时前
【STL string 全解析:接口详解、测试实战与模拟实现】
开发语言·c++·vscode·python·算法·leetcode
百***75745 小时前
linux上redis升级
linux·运维·redis
哈茶真的c6 小时前
【书籍心得】左耳听风:传奇程序员练级攻略
java·c语言·python·go
顾安r6 小时前
11.22 脚本打包APP 排错指南
linux·服务器·开发语言·前端·flask
Neur0toxin6 小时前
入侵排查_2025/11/23
linux·windows·应急响应
ALex_zry6 小时前
MySQL连接数管理与优化实操经验分享
android·mysql·adb
io_T_T6 小时前
Paddle-CLS图像分类_环境安装
python·日常软硬件经验分享