2

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)
4

1 に答える 1

7

サブプロセスの出力をパイプします。バッファがいっぱいになるとスリープします-サブプロセスからstdoutを読み取ることを覚えていますか?

communicateこのメソッドをブロックしてもかまわない場合は、このメソッドを使用するか、stdoutファイル記述子から読み取るか、使用していないように見えるため、stdoutを/ dev/nullに送信することができます。

于 2012-06-07T23:21:02.923 に答える