Python Execute um subprocesso daemon e leia stdout

Preciso executar um programa e reunir sua saída para stdout. Este programa (socat) precisa ser executado em segundo plano durante o script python. O Socat fica no modo dameon quando é executado, mas primeiro gera algumas linhas para o stdout necessárias para o restante do meu scrip

Command:socat -d -d PTY: PTY:

Saída

2011/03/23 21:12:35 socat[7476] N PTY is /dev/pts/1
2011/03/23 21:12:35 socat[7476] N PTY is /dev/pts/2
2011/03/23 21:12:35 socat[7476] N starting data transfer loop with FDs [3,3] and [5,5]

...

Eu basicamente quero executá-lo no início do meu programa e deixá-lo em execução até o término do script, mas preciso ler os dois nomes / dev / pts / X em pytho

Alguém pode me dizer como fazer isso?

Eu vim com isso que simplesmente trava, eu acho, porque está bloqueando o processo filho para termina

#!/usr/bin/python
from subprocess import Popen, PIPE, STDOUT

cmd = 'socat -d -d PTY: PTY: &'

p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True)
output = p.stdout.read()

# Process the output 
print(output)

Obrigado por qualquer ajud

EDIT: Parece que pode escrever para o stderr, mas o script ainda permanece com e sem a & até leitura do stder

questionAnswers(3)

yourAnswerToTheQuestion