subprocess.Popen inheriting
Aaron Brady
castironpi at gmail.com
Tue Dec 16 15:17:09 EST 2008
On Dec 16, 4:15 am, "Gabriel Genellina" <gagsl-... at yahoo.com.ar>
wrote:
> En Tue, 16 Dec 2008 07:29:19 -0200, Aaron Brady <castiro... at gmail.com>
> escribió:
>
> > I have a file handle I want to inherit in a child process. I am
> > looking at '_make_inheritable' in 'Popen', but it needs an instance,
> > and by the time I have one, the subprocess is already running.
>
> > Can't I call 'Popen._make_inheritable( None, handle )'? The method
> > does not use 'self'.
>
> File handles are inherited by default, I think. What's your specific
> problem?
>
> --
> Gabriel Genellina
I want a dual-console application for some multi-threaded output. The
main process spawns a second process in a second window, and directs
its readout through a pipe. That is, the second process is just a
dummy, print pipe directly to console.
It worked when I used the 'stdin= PIPE' keyword in Popen, but passing
my own pipe handle on the command line isn't working. The keyword is
a workaround.
> File handles are inherited by default, I think.
I thought so too. The web seems to say that on Linux they are, and on
Windows, you need to call DuplicateHandle for it.
By the way, there are a few solutions to the inheritance problem.
1. Override __init__ and __del__ in a subclass.
2. Assign DummyClass= Popen._make_inheritable
3. Override Popen._execute_child to call _make_inheritable, then call
the super method.
More information about the Python-list
mailing list