我编写了一个程序(我在终端中运行它),它遍历一系列终端命令(Kali)。
import subprocess as sub
import time
sub.call(['airmon-ng', 'start', 'wlan0'])
p = sub.call(['airodump-ng','wlan0mon'])
time.sleep(10)
p.kill()最后一个命令是airodump-ng wlan0mon。一切正常(所有内容都显示在终端中(beacons、ESSID等))。
在指定的时间之后,我希望终止进程(airodump-ng wlan0mon)。
我不想用手按ctrl-c!
p.kill()不工作(可能使用不当)
我该怎么做呢?通过子进程模块发送什么命令?
发布于 2016-08-10 16:21:29
在subprocess.call()程序执行下一条语句之前,Python会等待子进程完成。您需要使用subprocess.Popen()初始化一个单独的(“后台”)进程,然后继续您的Python程序。
sub.call(['airmon-ng', 'start', 'wlan0'])
p = sub.Popen(['airodump-ng','wlan0mon'])
time.sleep(10)
p.kill()发布于 2015-11-01 08:01:47
您可以使用子进程来运行"killall airodump-ng“。
但是,如果您这样做了,您也可以将整个代码转换为bash脚本。
https://stackoverflow.com/questions/33456958
复制相似问题