python - 使用python子进程执行命令并隐藏控制台窗口
问题描述
我想使用 subprocess.popen 和 excute 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上运行这段代码时,所有的控制台窗口都出来了,所以我想隐藏所有的窗口。找了好久还是不知道怎么弄,如果能帮到我,谢谢。
解决方案
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()
如您所见,最后一行已注释。这样我就不会在终端中显示任何内容,但如果你想打印它,你总是可以取消注释它。
我认为这就是你想要的。
推荐阅读
- node.js - 在 Angular2 应用程序的前端存储对象实例数据是否可以接受?
- google-api - Google book API 限制和 api 密钥
- date - 如何在 Groovy 中专门格式化日期/时间
- python - 在 os.chdir() 之后无法导入模块
- kdb - 加入字典以制作表格
- c++ - 我的程序运行时出错(运行时检查失败 #2 - 变量“userInput”周围的堆栈已损坏。)
- ios - 我想保存到 CORE DATA,但我不断收到“类 'Reminder' 的 NSManagedObject 必须具有有效的 NSEntityDescription。”
- javascript - 控制台错误 NodeJS 配置
- javascript - 使用循环使用此 javascript 获取结果时遇到问题
- ios - 在 iOS 上运行 TensorFlow 时出错