我想使用subprocess.popen并执行airodump --bssid xxxx:xxxx:xxxx:xxxx - c xxx:xxxx:xxx:xxxx -w tmp.ivs
,但是它有一个控制台窗口,我想将其隐藏。
for ap in aps:
args = "airodump-ng --bssid {BSSID} -c {CH} --output-format netxml -w {name}.ivs wlan0mon".format(
BSSID=ap.get("BSSID"),
CH=ap.get(' channel'),
name=ap.get("BSSID"))
print(args)
p=multiprocessing.Process(subprocess.Popen,args=(args.split(),))
p.start()
p.join()
当我在kali上运行此代码时,所有控制台窗口都出来了,所以我想隐藏所有窗口。我搜索了很长时间,但仍然不知道该怎么做,所以谢谢您的帮助。
答案 0 :(得分:0)
import multiprocessing
import subprocess
def executeCommand(exeArgs, output):
commandProcess = subprocess.Popen(exeArgs.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = commandProcess.communicate()
output.put(out)
command = "Your command Here"
output = multiprocessing.Queue()
p = multiprocessing.Process(target=executeCommand, args=(command, output) )
p.start()
p.join()
#print output.get()
您可以看到最后一行已注释。这样,我不会在终端中显示任何内容,但是如果您要打印它,则始终可以取消注释。
我想这就是你想要的。