【发布时间】:2016-09-29 14:15:12
【问题描述】:
我正在编写一个通过 subprocess.open 执行 tcpdump 的 python 脚本
现在,我希望此脚本不向屏幕输出任何内容(标准输出),而只是静默运行。我试过这样做:
ps_dump = subprocess.Popen(['tcpdump', '-U', '-w', pcapfile, 'port 53'], stdout=subprocess.PIPE)
但它仍然输出这些:
设备 eth0 进入混杂模式 tcpdump:监听 eth0,链路类型 EN10MB(以太网),捕获大小 65535 字节
0 个数据包被捕获
过滤器收到0个数据包
内核丢弃了0个数据包
设备 eth0 离开混杂模式
我想完全压制这些。如果我运行脚本,它不应该打印任何东西。 我读到您可以在 linux 中使用 >/dev/null 进行抑制,但是如何在上面的 Popen 命令中使用它?
关于如何让它发挥作用的任何建议或答案?
【问题讨论】:
-
我认为@λuser 是正确的-tcpdump 正在写入stderr,而您没有捕获该输出。欲了解更多信息,请参阅:stackoverflow.com/questions/10683184/…
标签: python linux subprocess tcpdump