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