Python:隐藏子进程在终端上打印并在子运行时继续执行脚本

时间:2012-07-21 07:19:39

标签: python debian subprocess scapy

有没有办法使用python2.6与subprocess.Popen()os.system()运行两个任务?示例脚本将首先运行“airodump-ng”,然后此进程为sub并隐藏(意味着不会从终端打印出来),之后继续运行包含“sniff”功能的脚本的其余部分Scapy的。我一直在研究,但我只发现了Windows版本和python3。顺便说一句,我在debian上运行。

2 个答案:

答案 0 :(得分:1)

subprocess.Popensubprocess.PIPE结合使用:

p = Popen(['airodump-ng', …], stdin=PIPE, stdout=PIPE, stderr=PIPE)

如果您想等到该过程使用完毕:

stdout, stderr = p.communicate()

如果省略上面的代码airodump-ng将在后台运行并且不产生可见的输出,而你可以继续你的python代码。

另一种方法是使用os.devnullairodump-ng的输出重定向到,这将完全消除所产生的任何输出:

devnull = os.open(os.devnull, os.O_WRONLY)
p = Popen(['airodump-n', …], stdout=devnull, stderr=devnull)

答案 1 :(得分:0)

在您放置命令的地方timeout 'X's airodump-ng mon'X'将该部分替换为scan