SecureCRT for Android實現自動重啟、自動開啟logcat、自動定位特殊字串
SecureCRT版本資訊:
Version 8.1.3 (x64 build 1382)
此指令碼,主要用於Android測試,可用於自動重啟、自動輸出logcat等操作。
如何使用
SecureCRT—-Script—-Run…
# $language = "python"
# $interface = "1.0"
#Created by [email protected] on 2017/7/5.
#可根據盒子的實際輸出做調整
#等待開機輸出到串列埠上字串“lowmemorykiller: oom_adj 15 => oom_score_adj 1000”,便於此時機,執行logcat命令
reboot_start_ready = "lowmemorykiller: oom_adj 15 => oom_score_adj 1000"
#捕捉開機過程中異常列印
#java.lang.NullPointerException
#android.os.DeadObjectException
#/data/anr/traces.txt
reboot_Exception_Watchdog = "Watchdog"
reboot_Exception_NullPointer= "java.lang.NullPointerException"
reboot_Exception_DeadObject = "android.os.DeadObjectException"
reboot_Exception_anr = "/data/anr/traces.txt"
#等待正常開機後的列印
reboot_start_end = "create /var/sky_stb_ChannelBackAndSmartEpg.cfg"
#logcat命令
cmd_logcat = "logcat -v time"
cmd_reboot = "reboot"
def Main():
crt.Screen.Synchronous = True
if not crt.Session.Connected:
crt.Dialog.MessageBox("檢查SecureCRT是否已連結" )
return
#重啟次數
reboot_count = 0
while True:
#輸出重啟次數
#引數True表示傳送的是字串,非命令
crt.Screen.Send("\n重啟次數reboot_count=%d\n\n"%(reboot_count), True)
#等待重啟至reboot_start_ready
crt.Screen.WaitForString(reboot_start_ready, 30)
#chr(3)傳送‘中斷鍵’、chr(13)傳送‘enter鍵’,等待shell
crt.Screen.Send(chr(3))
crt.Screen.Send(chr(13))
crt.Screen.WaitForString("[email protected]:/ # ")
#執行logcat命令
SendCmd(cmd_logcat)
#等待正常開機字串標誌
#WaitForString未指定timeout時間,意味著一直等
result = crt.Screen.WaitForString(reboot_Exception_DeadObject, 90)
if result == 0:
#中斷cmd_logcat命令輸出,傳送ctrl + c
crt.Sleep(2000)
crt.Screen.Send(chr(3))
crt.Screen.Send(chr(3))
#記錄重啟次數
reboot_count += 1
#執行reboot命令
SendCmd(cmd_reboot)
else:
break
def SendCmd(cmd):
# Returns true if the text in 'send' was successfully sent and the
# text in 'expect' was successfully found as a result.
# If we're not connected, we can't possibly return true, or even
# send/receive text
if not crt.Session.Connected:
return
while True:
crt.Screen.Send(cmd + chr(13))
#避免上一個chr(13)無效,多發一次,方便快捷。
crt.Screen.Send(chr(13))
#此處WaitForStrings含義在於:有的時候傳送到串列埠的字串會異常。
#匹配到cmd字串,返回1
#未匹配字串,返回0
#1表示等待超時1s
result = crt.Screen.WaitForStrings(cmd, 1)
#cmd
if result == 1:
break
#多次傳送ctrl + c
crt.Screen.Send(chr(3))
crt.Sleep(1000)
crt.Screen.Send(chr(3))
#crt.Dialog.MessageBox(str(result))
return True
Main()
相關推薦
SecureCRT for Android實現自動重啟、自動開啟logcat、自動定位特殊字串
SecureCRT版本資訊: Version 8.1.3 (x64 build 1382) 此指令碼,主要用於Android測試,可用於自動重啟、自動輸出logcat等操作。 如何使用 SecureCRT—-Script—-Run…
Jetty插件實現熱部署(開發時修改文件自動重啟Jetty)
max www. nbsp 很遺憾 pom als ati mave 重啟 在pom.xml文件中配置Jetty插件的參數:scanIntervalSeconds <plugin> <grou
Node.js熱部署代碼,實現修改代碼後自動重啟服務方便實時調試
iso 用戶 使用方法 了解 super 幫助 應用 https js文件 寫PHP等腳本語言的時候,已經習慣了修改完代碼直接打開瀏覽器去查看最新的效果。而Node.js 只有在第一次引用時才會去解析腳本文件,以後都會直接訪問內存,避免重復載入,這種設計雖然有利於提高性能,
Docker容器可以使用容器平臺管理自動重啟實現自修復嗎?
引入 管理 寫代碼 過多 來講 dock 網易 一個 doc 容器的自修復功能是經常被吹噓的。因為容器是衣服,人躺下了,衣服也躺下了,容器平臺能夠馬上發現人躺下了,於是可以迅速將人重新喚醒工作。 而虛擬機是房子,人躺下了,房子還站著。因而虛擬機管理平臺不知道裏面的人能不
Supervisor的作用與配置:實現對異常中斷的子進程的自動重啟
對異常中斷的子進程的自動重啟Supervisor的作用與配置:實現對異常中斷的子進程的自動重啟supervisor管理進程,是通過fork/exec的方式將這些被管理的進程當作supervisor的子進程來啟動,所以我們只需要將要管理進程的可執行文件的路徑添加到supervisor的配置文件中就好了。此時被管
[2]supervisor的使用管理:實現對異常中斷的子進程的自動重啟(以redis為例)
program usr AI turn red 重新啟動 自動 t權限 可執行文件 1:下載wget http://download.redis.io/releases/redis-3.2.8.tar.gz1下載指定版本,可以登錄https://redis.io/downl
[4]supervisor使用管理:實現對異常中斷子進程的自動重啟(以mysql為例)
grep -v rem iad apple mysq round true com 子進程 實現進程服務管理,supervisort監聽到進程死後,會自動將它重新拉起,很方便的做到進程自動恢復的功能,不再需要自己寫shell腳本來控制安裝過程1、到官網下載最新版本,解壓編譯
[3]supervisor使用管理:實現對異常中斷子進程的自動重啟(以nginx和apache為例)
ria std super -s zip inux ecs 核數 down Web服務器Nginx的安裝與配置卸載老版本的Nginxsudo apt-get --purge remove nginxsudo apt-get autoremove dpkg --get-sel
VS2010 MFC Dialog實現程式自動重啟
VS2010 MFC Dialog 做了一個小專案,需要實現自動重啟,搜了一些文章,各有優缺點,所以將這些文章做了一下簡單的綜合,下面是自己的實現過程,並附上了參考文章連結,希望能給新手帶來幫助。 1. 先建一個VS2010 MFC Dialog 工程,此處之所
Keepalived實現心跳檢測實現自動重啟
專案中伺服器如果發生宕機:1、故障轉移 2、心跳檢測 3、負載均衡 4、自動重啟 心跳檢測: 心跳檢測指令碼: 寫入nginx_check.sh指令碼 vi /etc/keepalived/nginx_check.sh #!/bin/bashA=`
android 安裝後自啟動 和 靜默安裝後自動重啟
安裝後自啟動很久之前的問題了 今天剛好遇到 記錄一下:新增兩行命令就搞定了 一般的安裝 Intent intent = new Intent(); //執行動作 intent.setAction(Intent.ACTION_VIEW);
Shell指令碼實現軟體一鍵安裝和自動重啟(一)
前言 在LINUX開發過程中,往往需要對已經開發好的軟體進行打包,一鍵安裝後程序能自動後臺啟動,當程序意外關閉後能自動重啟,本篇來介紹實現過程。 業務分析 對功能進行拆分 1、實現程式後臺執行,掛掉重啟的監聽器指令碼 2、將監聽器指令碼放入開機啟動項 3、實現軟體
SHELL指令碼實現服務宕機監控自動重啟
需要先安裝 yum install stat crontabs (本例項在centos系統下) #!/bin/bash #Shell ##根據修改檔案時間進行監控## content=`ls -l /tmp/log.txt | awk '{ print $5 }'`
php-fpm容易假死,實現自動重啟php服務的指令碼 通過後
通過後臺一直執行,檢測有問題就重啟。指令碼程式碼很少,語句很簡單,消耗系統資源非常低,可以試試。 感覺挺笨的方法,不過有效,呵呵~ #!/bin/bash #check php-fpm server up/down TelLog=/tmp/telphp.log while : do sleep 15
android app崩潰後自動重啟
1.偶然發現專案因為一場崩潰後,自動重啟到上一介面。因為未知原因,重啟後fragment顯示有誤,需要殺死程序後才能正常適應app。悲劇的是,因為馬上就重啟程序 了,導致LOG中看不到異常原因。非常不好除錯。 2.經過查資料得知,這些都是google的一種策略,當app崩潰
Android 開發之Service 探索如何保證Service不被殺死或被kill之後自動重啟
前言: 在我司專案1.0版本的時候訊息是使用的環信、用了之後發現各種bug,各種機型不支援導致app崩潰,於是在2.0版本果斷去掉環信,使用了公眾號用的那套訊息系統(老大自己寫的)並做了擴充套件升級。
解決android系統進行OTA升級失敗時進入recovery介面不能自動重啟問題
1.前言 在使用android系統中我們肯定需要對其進行OTA升級,因專案原因,我們機器升級頻率比較高,android系統升級出現失敗的情況肯定是有的,原因用多方面,下面會說到。升級
Android Service被關閉後自動重啟,解決被異常kill 服務
Android開發的過程中,每次呼叫startService(Intent)的時候,都會呼叫該Service物件的onStartCommand(Intent,int,int)方法,然後在onStartCommand方法中做一些處理。然後我們注意到這個函式有一個int的返回值,
SpringBoot自動重啟、熱啟動
SpringBoot自動重啟的兩種方法: 1)在專案的pom中直接新增plugin,如下: <build> <plugins> <plugin> <groupId&g
Android一個APP檢測另一個APP的Service被殺死時自動重啟服務
例如:appA要檢測啟動appB中的service 1.修改B中Service啟動時的FLAG @Override public int onStartCommand(Intent