首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ADB Bash脚本在完成之前断开连接

ADB(Android Debug Bridge)是一个通用的命令行工具,它允许你与Android设备进行通信。Bash脚本是一种在Unix-like系统中使用的命令行脚本语言。当你在执行ADB Bash脚本时,如果连接在脚本完成之前断开,可能是由于多种原因造成的。以下是一些基础概念、可能的原因以及解决方案:

基础概念

  • ADB: 是一个客户端-服务器程序,其中客户端是用于操作的电脑,服务器是Android设备。
  • Bash脚本: 是一种自动化执行一系列命令的脚本语言。
  • SSH连接: 远程连接到服务器或设备的一种方式。

可能的原因

  1. 网络不稳定: 远程连接可能因为网络波动而中断。
  2. 脚本执行时间过长: 如果脚本执行时间超过了SSH会话的超时时间,连接可能会断开。
  3. 设备或模拟器问题: 设备或模拟器可能因为某些原因停止响应。
  4. 权限问题: 脚本可能没有足够的权限来执行某些操作。

解决方案

  1. 增加SSH会话超时时间: 在SSH配置文件(通常是/etc/ssh/sshd_config)中,增加ClientAliveIntervalClientAliveCountMax的值。
  2. 增加SSH会话超时时间: 在SSH配置文件(通常是/etc/ssh/sshd_config)中,增加ClientAliveIntervalClientAliveCountMax的值。
  3. 这会每60秒发送一次保持活动的信号,并且如果在30次尝试后没有收到响应,才会断开连接。
  4. 使用nohupscreen: 使用nohup命令可以让脚本在后台运行,即使SSH连接断开也不会受到影响。
  5. 使用nohupscreen: 使用nohup命令可以让脚本在后台运行,即使SSH连接断开也不会受到影响。
  6. 或者使用screentmux来创建一个会话,在这个会话中运行脚本,这样即使断开连接,也可以重新连接到同一个会话继续执行。
  7. 或者使用screentmux来创建一个会话,在这个会话中运行脚本,这样即使断开连接,也可以重新连接到同一个会话继续执行。
  8. 检查脚本和设备状态: 确保脚本没有错误,并且设备或模拟器处于正常工作状态。可以在脚本中添加日志输出,以便于调试。
  9. 检查脚本和设备状态: 确保脚本没有错误,并且设备或模拟器处于正常工作状态。可以在脚本中添加日志输出,以便于调试。
  10. 确保足够的权限: 使用sudo来运行脚本,如果需要的话,并确保脚本文件有执行权限。
  11. 确保足够的权限: 使用sudo来运行脚本,如果需要的话,并确保脚本文件有执行权限。

应用场景

  • 自动化测试: 在持续集成/持续部署(CI/CD)流程中,经常需要远程执行自动化测试脚本。
  • 设备管理: 对于远程设备管理,如批量更新或配置设备。
  • 数据收集: 收集设备日志或其他数据,可能需要长时间运行的脚本。

通过上述方法,可以有效地解决ADB Bash脚本在执行过程中因连接断开而中断的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

远程ADB通讯的两种方案

小卡片,回复 “合集” 获取系统性的学习笔记和测试开发技能图谱 背景 在一些移动云测手机机房里Android设备是分批挂载在专门的宿主机集群上的,而执行自动化脚本的机器是在另外一个执行机集群中,因此就会产生这样的需求...:执行机上的自动化脚本需要通过网络远程连接的方式来控制宿主机上的Android设备。...方案一 ADB Host模式 首先在挂载Android设备的宿主机上执行下面的命令: adb kill-server && adb -a -P 5037 nodaemon server 然后在执行脚本的服务器上通过下面的命令远程连接设备...3、远程连接,断开手机和PC的有线连接,直接使用adb命令远程连接: adb connect ip:port 注意这里的IP是手机的IP,如果想要通过宿主机的IP连接,那么需要再做一次端口转发: adb...:50001 tcp:5555 adb connect 10.x.x.x:50001 这时候再通过devices命令查看,就可以看到连接好的设备: adb devices 4、断开远程连接 adb disconnect

7.8K20
  • Mi8刷机若干踩坑

    echo 3.屏幕会始终停留在米兔LOGO界面 echo. echo. 4.完成上述步骤,将手机连接到电脑,按任意键继续 echo. echo....shell 命令来进入到手机的bash命令下,也可以直接在后面跟上bash命令来执行。...第一步 adb连接 要确保手机设备通过adb正确连接。如果提示为 offline 则需要重新设置手机的连接。...这里我的解决方法是: 断开usb设备连接 执行命令 adb kill-server 来停止adb服务 执行命令 adb start-server 来重新运行adb服务 重新通过usb连接手机设备 打开...开发者选项 ,重新勾选 usb调试,在弹出的窗口选择 确定 再次执行命令 adb devices,发现显示 device 了 第二步 拷贝Magisk文件 通过 adb push 命令将新版的Magisk

    1.7K20

    全志V853芯片 Tina Linux下网络ADB内存泄露如何修复?

    由于每款产品连接无线网络的命令不大一致,因此此处就不对网络连接进行赘述了。 3、编写bat脚本,进行压测。...根据log信息以及对比源码能够发现,在调用transport.c的transport_registration_func()函数时,当读到的action等于0,即退出adb时,就会free掉一些之前malloc...对比有线adb,在连接时会申请结构体atransport的内存,在拔出usb线时也会free掉对应的内存。...对于拔出USB线来说,就会对gadget进行disconnect,然后composite gadget就会通过uevent通知应用层已经断开连接了,于是adbd就能够获取到事件从而去断开连接,释放资源。...6.解决办法 基于上述情况,在output_thread中加入限制的条件。在USB ADB时,取消break,让其一直在循环当中。

    15910

    QtScrcpy,人人可用的多屏协同

    软件介绍 QtScrcpy就是这么一款软件,它基于Scrcpy二次开发,相比之下的优点有: 低延迟,35-70ms 不需要在手机上安装任何软件 快速启动 支持window,linux甚至macos 自定义脚本...步骤图 步骤 无线连接步骤(保证手机和电脑在同一个局域网): 安卓手机端在开发者选项中打开usb调试 通过usb连接安卓手机到电脑 点击刷新设备,会看到有设备号更新出来 点击获取设备IP 点击启动adbd...刷新设备列表:刷新当前连接的设备 启动服务:连接到Android设备 停止服务:断开与Android设备的连接 停止所有服务:断开所有已连接的Android设备 获取设备ip:获取到Android设备的...ip地址,更新到“无线”区域中,方便进行无线连接 启动adbd:启动Android设备的adbd服务,无线连接之前,必须要启动。...无线连接:使用无线方式连接Android设备 无线断开:断开无线方式连接的Android设备 adb命令行:方便执行自定义adb命令(目前不支持阻塞命令,例如shell)

    3.7K10

    移动端UI自动化过程中的难点及应对策略

    前言 在之前的文章《自动化质量评估维度》中,我们探讨了衡量自动化稳定性的误报率指标,今天重点针对移动端UI自动化过程中导致误报的几个难点进行展开分析并给出相应的解决方案。...io.appium.unlock adb uninstall io.appium.settings 问题3:WIFI断开及连到其他WIFI的情况 针对这种情况,我们可以自己开发手机Agent应用来控制连接指定...WIFI并且在断开连接后自动重连,具体实现我会在后续文章中讲解。...测试脚本不稳定 问题1:缺少等待时间导致断言失败 可以加入一些判断条件,确保页面加载完成再进行UI操作,另外尽量使用逻辑验证,减少数据验证,数据验证更适合接口测试。...问题3:控件查找超时 Appium默认情况下每个执行请求都有超时时间包括查找控件,有时候由于设备性能太差导致执行时间过长,从而导致Appium Server断开连接,这时需要通过修改Appium Capabilities

    92920

    Appium使用wifi连接多台手机

    如果没有安装驱动,解决办法如下: 1.去官网下载手机驱动或者电脑下载手机助手来辅助安装手机驱动,安装完成后卸载手机助手(防止接入手机时抢adb端口造成干扰) 2.打开手机设置,进入开发者选项,打开USB...wifi 的ip地址,例:adb connect 192.168.1.100:5556 # 通过adb wifi 连接手机 adb connect 172.18.30.218:8210 # 连接成功提示...connected to 10.1.217.238:5555  此时,我们再次查看一下连接的设备,发现已经用有线和无线的方式都连接上了,你可以拔掉usb进行操作了 断开连接 adb disconnect...(device ip) # 断开手机连接 adb disconnect 172.18.30.218:8210 # 执行结果 disconnected 172.18.30.218:8210 启动多个appium-server...之前有想过python代码执行appium命令的形式去自动启动appium服务,但通过npm或cnpm安装appium命令行都有报错,只能手动启动。

    1.8K31

    市场上十块钱买一个随身WiFi使用技术手段,插卡流量不限速不限量?

    ---- 文章目录 一、前言 二、进入安卓界面 1.进入网页控制台 2.先开启adb 3.CMD连接设备 4.对界面进行控制 三、刷入clnc脚本实现免流 1.ADB v2 clnc 2.手机青龙一键...,在使用CMD连接随身WiFi之前,需要先下载环境,配置环境变量 这里详细的教程可以看知乎的:Win10 配置安装ADB教程总结 图片 4.对界面进行控制 连接上后怎么对界面进行控制呢?...三、刷入clnc脚本实现免流 这一部分我就讲的模糊点,如果之前玩过的自然就懂了 1.ADB v2 clnc 推送脚本 adb push ....完成这两步了,就可以拔掉重插,等待开机,进入系统看到magisk已经获取到root权限了。 PS 1、首次连接ARDC一直在重新连接连不上可以用adb命令吧ARDC.apk装上就可以了。...4、完成获取root后,必须通过adb uninstall com.teslacoilsw.launcher 来卸载第三方桌面,否则hostwifi那个软件在开机时候不会启动,就不会有wifi。。

    10.8K13

    App自动化测试|Appium工作原理及Desired Capbilities配置

    在创建session成功之前,appium就已将bootstrap.jar放入手机中,并开启设备上的基于appiumbootstrap的socket服务,绑定本机和boostrap通信的端口号4724用于和...(一般和noSign属性一起使用)browserName:测试的H5 web浏览器,如果是测app则忽略newCommandTimeout:用于客户端在退出或者结束session之前,Appium等待客户端发送一条新命令所花费的时间...在Android,在session完成之后也会将应用卸载掉。...# 是否支持中文输入 'resetKeyboard':True, # 是否支持重置键盘 'newCommandTimeout': 30 # 30秒没发送新命令就断开连接...# 是否支持中文输入 'resetKeyboard':True, # 是否支持重置键盘 'newCommandTimeout': 30 # 30秒没发送新命令就断开连接

    2.5K10

    企业微信自动打卡Python脚本,价值一万元的自动打卡脚本

    价值一万元的自动打卡脚本 这个Python脚本还是有bug的,暂时不在维护和修复了,如果按照既定规划的执行不会出现错误。...8、通过 IP 地址连接设备 adb connect 9、断开无线连接 adb disconnect 10、查看所有应用...使用usb连接手机,adb shell 进入终端执行 setprop service.adb.tcp.port 5555 设置好后,手动重启usb调试,在开发者模式,usb调试开关,关闭打开一次就好...:5555 出现如下提示说明连接成功 connected to 192.168.1.102:5555 执行 adb devices 会出现两个设备,然后断开usb线路。...adb shell 就可以连接上了 ×关闭wifi adb 断开和手机的链接 adb disconnect 切换到usb调试 adb usb ×连接指定设备 adb

    4.1K10

    安卓自动化之ADB操作

    对于 Android 端的自动化测试,ADB 的重要性不言而喻,很多开源的自动化框架操作大都是利用 ADB 命令来完成。 下面对 ADB 在平时自动化操作过程中一些问题做一个汇总。...数据线直连设备:可以使用 adb devices 检查设备是否连接成功。 ? 无线连接设备: 无线连接设备需要分 3 步完成。分别是:让 PC 和设备在同一局域网、映射端口、通过 IP 完成连接。...4、常用操作 Airtest、Appium 等自动化框架都是在 ADB 的基础上进行了封装,使我们对打开应用、点击、滑动等操作变得很简单。 但是,下面操作直接 adb 会更方便。...6、常用问题 adb 常见的问题包含:设备找不到或者设备连接不上。 请先确认手机开发者模式和 USB 模式开启,PC 端的 ADB 环境配置成功。 最后,试试断开所有连接或者重启设备。...# 断开所有连接 adb disconnect # 重启手机 adb reboot # 查看设备 adb devices

    1.6K52

    【致远FAQ】致远OA宕机之Tomcat异常宕机

    :32:28相关日志内容,如图4所示,可以得出以下信息: 5)tomcat宕机、sshd进程收到断开连接的事件都发生在同一秒。...6)该日志中也记录了发出ssh断开连接事件的客户端ip地址(该信息非常有用,可以根据ip地址定位到操作者,并通过操作者了解问题发生前相关操作信息,这为后期的缩小问题范围并将问题复现提供了很有价值的线索)...9)基于此,根据断开ssh的session会话的ip地址,定位到相应的操作者,获取到当时执行的操作命令项目,了解到采用seeyonupdate脚本执行启动;以下图示是更新脚本片段;从代码片段来看,在启动进程里面增加了一个...原因定位 综合以上过程的分析,我们可以把整个tomcat异常退出的流程串联一下: 1)操作用户在ssh终端执行了seeyonupdate脚本,对综合办公应用平台进行升级部署与启动;脚本的最后,通过执行...tail命令,对日志信息进行查看(此时,seeyonupdate脚本并未退出,而是挂在了tail进程上) 2)用户关闭了ssh终端窗口或网络断开导致ssh连接断开,sshd会把SIGHUP信号发给了窗口内的

    1.5K30

    【保姆级教程】万字详解App定向爬虫

    image-20211124134224272 在 BEGIN CERTIFICATE 之前会有「类似于」 c8750f0d 这样的串,然后复制它。...2.2.4 ADB 安装 ADB 是用于开发平台(Mac|Windows|Linux 等)模拟操作安卓手机端的工具,它可以完成模拟操作手机、获取手机信息、传输文件、安装 APK 等需求,后续我们会使用到...文件,如果不存在先创建,可以用 vim open .bash_profile在文末加入(内有路径需要改为自己的,别蒙头复制粘贴) export ANDROID_HOME=/Users/你的用户名/Library...adb devices -l #显示所有已连接的设备详细信息:127.0.0.1:62001 若未连接,则连接 ADB adb connect 127.0.0.1:62001 #默认端口 进入我们已经重命名以后的证书所在位置...这里的c8750f0d.0是你之前生成证书时改的名字,别直接无脑复制粘贴了哈」 安装 mitm 证书到手机的 ADB SHELL 操作 #获取手机的root权限 adb shell su #挂载系统目录为可写

    2.7K10

    持续集成环境下的 Android 模拟器

    作为应对挑战的第一步,您可以使用预构建容器或脚本为 Linux 创建 Docker 镜像。在本文中,我将会向您阐述如何使用预构建容器,以及脚本都做了哪些工作。...之前,我们发布了一篇博客: Android 模拟器的下载与 Docker 镜像生成脚本 来帮助开发者简化远程模拟器的部署与调试。...这些容器无需运行生成脚本,从而节约了时间,并降低了复杂度。预构建容器还支持 Docker 脚本所提供的所有功能,如 adb 与 web 访问。...下面的脚本展示了如何集成 Android 模拟器容器到您的系统,以及如何使用它们运行测试: #!/bin/bash # 这是我们将要运行的远程镜像。...在创建了模拟器容器,执行完步骤之后,包含 create_web_container.sh 的脚本会在本地捕获创建容器和生成加密传输用的密钥的过程。

    62920

    甲骨文DD重装系统,甲骨文DD Debian 91011或Windows详细教程汇总

    目前新注册账号可以在自己所选择的初始区域(注册时选择的区域)建立两台永久免费主机,此外赠送一个月的400新加坡元试用额度(或300美元)。...,脚本全自动运行,dd之后会造成断开链接的情况,不用担心,请耐心等待20分钟或更久。...示例: 至此,等待Oralce自行DD完成之后(大概15-30分钟),就可以通过22或者3389连接管理了。可以通过ping命令查询是否ping的通,来判断是否DD完成。...或者通过tcp.ping.pe此工具来判断是否DD完成。 在搜索框内输入ip地址+端口即可。...示例:(如下图表示已经DD完成,22端口可以ping通) 如果头几次连接服务器出现断开,属于正常现象,多连两次就好了。

    13.8K40

    APP爬虫开发环境准备

    然后可以先使用真机进行测试,打开手机的“开发者选项”,并启用“USB调试”模式,在控制台输入adb devices ? 这样就表示我们的adb已经安装好了,下面就是连接我们的模拟器了。...连接模拟器 在模拟器中打开“USB调试模式”,然后在控制台中关闭adb server,再重启即可 adb kill-server adb server 这个时候再查看连接设备 ?...连接模拟器 在红框中你会发现区别,在连接真机的ls前面是$符号,在连接模拟器的ls前面是#,#符号就表示拥有root权限,非#符号就表示没有root权限,我试过几个真机,都是无root权限的,可能需要我们自行...设置环境变量 在vim ~/.bash_profile文件最后增加以下内容,如果没有就新建一个 export ANDROID_HOME=/Users/xxxx/Library/Android/sdk export...最最最重要的是,在其他机器上想要使用以及编写好的脚本,只需要安装pip install poco就可以了,不需要再安装Airtest工具。

    1K10
    领券