ban*_*ana 2 python linux subprocess
我有一个开始的过程,subprocess.Popen()意味着无限期地运行.我遇到的问题是这个过程似乎在大约20秒后停止运行.果然,当我检查时top,它表明该过程将要进入睡眠状态.当我手动运行命令时,这不会发生.
有谁知道我怎么能阻止这种情况发生?
这是子进程调用:
aireplay = subprocess.Popen('aireplay-ng -3 -b ' + target.mac + ' ' + interface,
shell=True, stdout = subprocess.PIPE, stderr = DN)
time.sleep(5)
starttime = time.time()
ivs = 0
second = False
print 'Sending deauth to generate arps...'
send_deauth(target)
while time.time() - starttime < 1200:
targets = parsecsvfile('crackattempt')
print 'Captured ' + str(ivs) + ' ivs.'
print aireplay.poll()
if len(targets[0]) > 0:
target = targets[0][0]
if ivs > 20000:
break
else :
ivs = int(target.ivs)
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
您正在管道子进程的输出.当它的缓冲区已满时它会休眠 - 你还记得从子进程中读取stdout吗?
您可以使用该communicate方法,如果您不介意它阻止,或从stdout文件描述符读取,或者可能将stdout发送到/ dev/null,因为您似乎没有使用它.