我正在尝试自动从Android设备获取网络日志到Windows系统。为此,我需要发送多个命令。我能够为他们中的大多数人加入俱乐部,但现在我陷入困境,我必须停止tcpdump
进程并使用adb pull
从设备复制捕获文件。
我正在使用此命令启动tcpdump
:
adb shell su -c ./data/tcpdump -i any -s 0 -w /sdcard/Download/tcpdump.pcap
手动运行上面的命令工作正常,所以我假设以下python
代码也很好:
self._proc3 = Popen(shlex.split(cmd),stdout=PIPE ,stderr=PIPE)
为了停止这个过程,我尝试了多种方法,如:
在\x03\n
中发送ctrl-c,Popen
全部。此外,使用taskill
终止子进程。然而,没有任何作用。捕获文件未创建。我不知道这是由于某些Windows限制还是我做错了什么。
答案 0 :(得分:1)
您需要将SIGINT
信号发送到tcpdump
进程。
根据可用的busybox / toolbox / toybox版本,以下内容将使所有正在运行的tcpdump
实例停止捕获并转储日志:
adb shell su -c killall -q -2 tcpdump