python - subprocess grab stdout of airodump-ng -


i trying grab stdout airodump-ng using subprocess no luck. think code causes deadlock.

 airodump = subprocess.popen(['airodump-ng','mon0'],stdin=subprocess.pipe, stdout=subprocess.pipe, stderr=subprocess.pipe) # wait 15 seconds find networks time.sleep(15) # save output o_airodump = airodump.stdout.read() os.kill(airodump.pid, signal.sigkill) # airodump.terminate print(o_airodump) 

how avoid problem. cant think 1 clean solution.

don't sleep , wait (that cause airodump block on full pipe buffer) , don't use unbounded read(). communicate() method need:

o_airodump, unused_stderr = airodump.communicate(timeout=15) airodump.kill() 

note: timeout parameter on communicate introduced in python 3.3 isn't quite out yet. ;)


Comments

Popular posts from this blog

javascript - backbone.js Collection.add() doesn't `construct` (`initialize`) an object -

php - Get uncommon values from two or more arrays -

Adding duplicate array rows in Php -