【问题标题】:How to gracefully stop tcpdump process on a phone?如何优雅地停止手机上的 tcpdump 进程?
【发布时间】:2016-11-16 23:21:24
【问题描述】:

我正在尝试自动将网络日志从 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)

为了停止这个过程,我尝试了多种方法,例如:

发送 ctrl-c ,\x03\n,全部在Popen。另外,使用taskill 杀死子进程。但是,没有任何效果。未创建捕获文件。我不知道这是由于某些 Windows 限制还是我做错了什么。

【问题讨论】:

  • 请为您的问题命名有意义的标题。在您的帖子中,您合理地描述了无法正确停止 tcpdump 捕获过程的问题 - 但标题没有任何意义。

标签: android python automation subprocess adb


【解决方案1】:

您需要将SIGINT 信号发送到tcpdump 进程。

根据可用的busybox/toolbox/toybox版本,以下将使所有正在运行的tcpdump实例停止捕获并转储日志:

adb shell su -c killall -q -2 tcpdump

【讨论】:

    猜你喜欢
    • 2020-04-07
    • 2019-11-10
    • 2011-03-12
    • 2011-01-04
    • 2023-03-22
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多