In article <[EMAIL PROTECTED]>,
 Wilbert Berendsen <[EMAIL PROTECTED]> wrote:

> Hi,
> 
> using pty.spawn() it seems that stderr output of the spawned process is 
> directed to stdout. Is there a way to keep stderr separate and only direct 
> stdin and stdout to the pty?

There is, of course.

First, you have to decide where you want unit 2 ("stderr") to go, and
then get the spawned process to redirect it there.  If a disk file
will do, then your question is just "how do I redirect error output
to a disk file, in ___" (fill in the blank with language used to
implement the spawned process - UNIX shell?  Python?  C?)

More likely, you want the spawned process' error output to go wherever
the parent's error output was going.  This is a little trickier.

Ideally, your spawned shell script can conveniently take a new
parameter that identifies the new file descriptor unit number for
error output.  In this case, use fd2 = os.dup(2) to get a new
duplicate, add a parameter like -e str(fd2), and in the spawned
process, redirect from that unit - in UNIX shell,  exec 2>&$fd2

Or you could use an environment variable to identify the backup
error unit, if the command line parameter option isn't available
for some reason.

   Donn Cave, [EMAIL PROTECTED]
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to