gpt4 book ai didi

python - 子进程抓取 airodump-ng 的标准输出

转载 作者:行者123 更新时间:2023-11-30 23:42:32 25 4
gpt4 key购买 nike

我试图使用子进程从 airodump-ng 获取标准输出,但没有成功。我认为我的代码导致了死锁。

   airodump = subprocess.Popen(['airodump-ng','mon0'],stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)

# wait for 15 seconds to find all networks
time.sleep(15)

# save the output
o_airodump = airodump.stdout.read()
os.kill(airodump.pid, signal.SIGKILL)
# airodump.terminate
print(o_airodump)

如何避免这个问题。想不出一个干净的解决方案。

最佳答案

不要 sleep 和等待(这只会导致 airodump 在完整的管道缓冲区上阻塞)并且不要使用无限制的 read()。 Communication() 方法可以满足您的需要:

o_airodump, unused_stderr = airodump.communicate(timeout=15)
airodump.kill()

注意:通信超时参数是在 Python 3.3 中引入的,但尚未完全退出。 ;)

关于python - 子进程抓取 airodump-ng 的标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11374825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com