Terry J. Reedy <[email protected]> added the comment:
I mentioned pipes because half of the subprocess chapter, it seems, talks about
them. ASo I got the mis-impression that they are special for subprocess-started
processes. But if the subprocess gets the args it needs to connect to a socket,
it should not care how it is started.
Anyway, some experiments:
3.1.3 and 3.1.4 freshly installed do not seem to have the zombie problem. This
seems to rule out the possibility that the problem is due to recent patches
from Microsoft.
I redeleted 3.2 installation and re-installed 3.2. Sys.version still
mistakingly say 3.2.1, July 10., so there is something different about the
relationship between 3.2 and 3.2.1 and that between 3.1.3 and 3.1.4. And the
3.2 re-install has the zombie problem while I do not believe the fresh 3.2
install did. (And it does not on my other machine.) But I do not see how
something stuck in the registry could affect process killing.
In the notepad example, changing
pid = os.spawnv(os.P_NOWAIT, 'C:/WINDOWS/notepad.exe', ['notepad.exe'])
# (full path needed if not in /windows) to
pid = subprocess.Popen(['C:/WINDOWS/notepad.exe']).pid
changed the 'pid' from a constant (across multiple runs) to a variable (across
multiple runs) and changed the result of the kill from a zombie and exception
to proper termination.
When I tried the same fix in idlelib/PyShell.py, adding 'import subprocess' and
changing
self.rpcpid = os.spawnv(os.P_NOWAIT, sys.executable, args)
to
self.rpcpid = subprocess.Popen(args).pid
(args begins with sys.executable) IDLE failed to start. The only evidence that
it had been invoked was a brief (1/4 second?) appearance of 1 pythonw process
in task manager. On a subsequent tries, without touching the file, I do not see
even that. Is there any obvious mistake in the above?
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue12540>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com