Need to avoid subprocess deadlock without communicate
<p>I need a execute a command that produces a lot of output and takes a lot of time to execute (> 30 minutes). I was thinking of using subprocess.Popen to do it. I need to capture the output of the command, so I pass PIPE to stdout and stderr.</p>

<p>A deadlock problem when using Popen.wait() is well documented on a lot of forums, so Popen.communicate() is the proposed way of avoiding the deadlock. The problem with that solution is that communicate() blocks until the command is completed. I need to print everything that arrives on stdout while the command is executed. If there is no output after 20 minutes, the script execution will be killed.</p>

<p>Here are some constraints that I need to respect:</p>

<ul>
<li>My Python version is 2.4.2 and I can't upgrade.</li>
<li>If the solution is still to use subprocess, I need to pass subprocess.PIPE to all std handles to avoid this bug: <a href="http://bugs.python.org/issue1124861" rel="nofollow">http://bugs.python.org/issue1124861</a></li>
</ul>

<p>Is there a way to do it?</p>
