[問題] adb process 莫名咬住 created file
不確定這個問題該 po 到 Android 還是 Perl 版
最近用 Perl 寫有關 adb debugging 遇到一個詭異的問題
就是執行 perl 途中, adb process 會咬住 file created from perl
後來把問題 narrow down 成以下 script:
=================================
use strict;
my $test = "out.log";
system("adb kill-server"); # (1)
open FILE, "> $test"; # (2)
system("adb shell ls"); # (3)
close FILE;
unlink $test or die "Q_Q\n";
=================================
只要執行該 script, console 一定會顯示 Q_Q
(當然前提是 找的到 adb 程式 和 usb driver)
但若只要在 open file 前, 讓 adb daemon 可以起來
例如在 #(1) 和 #(2) 之間呼叫 adb remount:
=================================
system("adb kill-server"); # (1)
system("adb remount"); # (4)
open FILE, "> $test"; # (2)
=================================
這樣的 script 就不會印出 Q_Q 了
不知道是不是因為 adb 起來的時候動到 file descriptor
讓檔案以為是 adb.exe 叫起來
但相同的邏輯,用 Python 跑卻沒事情
麻煩版上的大神們能幫忙指點迷津
感謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.50.98
※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1424367968.A.AA8.html
推
02/21 03:09, , 1F
02/21 03:09, 1F
→
02/21 03:10, , 2F
02/21 03:10, 2F
→
02/21 03:10, , 3F
02/21 03:10, 3F
→
02/21 03:13, , 4F
02/21 03:13, 4F
→
02/21 03:13, , 5F
02/21 03:13, 5F
→
02/21 03:13, , 6F
02/21 03:13, 6F
→
02/21 03:14, , 7F
02/21 03:14, 7F
→
02/21 03:14, , 8F
02/21 03:14, 8F
→
02/21 03:20, , 9F
02/21 03:20, 9F
---
Python 部分我目前只有試過 subprocess.call
至於 Perl or Python 內部如何運作,這我就不太了解 QQ
然後我試了一下您的建議
<a> system return value = 0, no error in $!
<b> 用 fork + exec 取代 system call, 也會發生 adb 咬檔事件
<c> 用 qx// 取代 system call, sub process 會卡住
關於這點,我發現跟 file open/close 一點關係也沒有
而是只要執行以下命令:
-----------------------------
system("adb kill-server");
`adb shell ls`; ____(*)
-----------------------------
那當 perl 跑到 (*) 那行時會莫名卡著...
ps:
不想要 (*) 卡著,只要在前面用 system call
隨便呼叫 adb cmd 即可
快分不清是 Perl/adb 有 bug, 還是我哪邊沒搞清楚
※ 編輯: doom8199 (61.221.50.98), 02/21/2015 23:18:06
推
02/22 00:47, , 10F
02/22 00:47, 10F
→
02/22 00:48, , 11F
02/22 00:48, 11F
推
02/22 00:55, , 12F
02/22 00:55, 12F
推
02/22 00:58, , 13F
02/22 00:58, 13F
→
02/22 01:00, , 14F
02/22 01:00, 14F
→
02/22 01:03, , 15F
02/22 01:03, 15F
→
02/22 01:05, , 16F
02/22 01:05, 16F
→
02/22 18:44, , 17F
02/22 18:44, 17F
→
02/22 18:46, , 18F
02/22 18:46, 18F
→
02/22 18:48, , 19F
02/22 18:48, 19F
→
02/22 18:50, , 20F
02/22 18:50, 20F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章