2

我编写了一个程序(我在终端中运行它),它通过终端命令列表(Kali Linux)。

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. 一切正常(一切都显示在终端中(信标、essid 等)。

在指定时间后,我希望终止进程(airodump-ng wlan0mon)。

我不想用手 按Ctrl+ !不起作用(可能是使用不当)。Cp.kill()

我怎样才能做到这一点?我应该通过子进程模块发送什么命令?

4

1 回答 1

0

subprocess.call方法是一个高级 API,它在返回其退出代码之前等待进程终止。如果你需要你的主进程在子进程运行的同时继续运行,你需要使用稍低级别的 API: subprocess.Popen,它在后台启动进程。

使用p = sub.Popen(['airodump-ng','wlan0mon'])而不是p = sub.call(['airodump-ng','wlan0mon'])应该工作。

于 2015-10-31T14:53:55.740 回答