python - 无法在 Python 中终止 airodump 进程

标签 python subprocess

这简直要了我的命。我一整天都在做这个,但被困住了。

我的目标是运行 airodump-ng 大约 10 秒,然后终止该进程,以便生成的 csv 文件停止不断更新。

由于各种原因,我尝试了很多实现,但都没有成功。这是最基本的尝试:

command  = "airodump-ng -w airodump mon0"
airodump = subprocess.Popen([command],stdout=subprocess.PIPE,shell=True)
time.sleep(10)
airodump.terminate()
airodump.kill()
airodump.wait()
#trying to run a command like "kill <pid>" does not work either. 

如果我不在那里 sleep ,有趣的是,这个过程永远不会被创建。自从我这样做以来,该过程就出现在屏幕上并且永远不会结束。从我收集的搜索结果来看,我可能正在处理一个完整的管道缓冲区。我不确定这意味着什么?这是否意味着这个过程刚刚接管了一切?这还有其他问题吗? airodump 有什么不让我像往常一样删除它的 Popen 对象和/或终止进程? (如果您不熟悉 airodump,它在行为上与“top”非常相似)

最佳答案

在 Linux 上,以下解决方案应该有所帮助: How to terminate a python subprocess launched with shell=True

你在 Windows 上吗?

关于python - 无法在 Python 中终止 airodump 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13023262/

相关文章:

linux - 我怎样才能让 subprocess 或 Popen 显示它刚刚运行的命令行?

python - 打开一个没有焦点的 pyglet 窗口

python - PIL 将具有透明度的 PNG 或 GIF 转换为没有透明度的 JPG

python Flask SocketIO 使用 eventlet 抛出 SSL 错误

python - 如何设置QMenu撕下窗口标题?

python - 如何从 process.Popen() 引发事件 getche() - 不监视标准输入

python - 在 Django 应用程序中实现 memcached 需要哪些步骤?

python - 使用 swig 绑定(bind)谷歌 Protocol Buffer

python - 我想检查Python的子进程是否成功或者是否发生错误

python - 分离使用 python 多处理模块启动的子进程