El error es evidente, la variable stdout no esta definido, tampoco stdin ni stderr.
Ademas stdout.read() no va a funcionar hasta que termine el proceso a menos que le des un tamaño a leer.
Aquí un ejemplo funcional:
Código Python:
Ver originalfrom subprocess import Popen, PIPE, STDOUT
p = Popen('iperf -u -s -p 5003', shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
buffer = ""
while True:
output = p.stdout.read(1)
if output == '\n':
print buffer
buffer = ""
else:
buffer += output
Ejecutas ese script y después ejecutas este comando:
Código:
iperf -u -c 127.0.0.1 -l 56 -i 1 -p 5003 -t 3