[Twisted-Python] Problems with signalProcess on Windows
Jean-Paul Calderone
exarkun at divmod.com
Fri Feb 6 12:04:02 MST 2009
On Fri, 6 Feb 2009 18:40:10 +0000, Brian Granger <ellisonbg.net at gmail.com> wrote:
>Hi,
>
>[take a deep breath and try to get over how much I dislike Windows]
>
>So, I am using Twisted's external process capabilities in a
>cross-platform setting. Almost everything is working now in Windows.
>But, when I try to stop the external program (using
>signalProcess("INT")) that I starting using reactor.spawnProcess, I
>get the following traceback:
>
> self.process_transport.signalProcess(sig)
> File "C:\Python25\lib\site-packages\twisted\internet\_dumbwin32proc.py
>", line 247, in signalProcess
> win32process.TerminateProcess(self.hProcess, 1)
> pywintypes.error: (5, 'TerminateProcess', 'Access is denied.')
>
>The odd thing is that the process stops just fine. That is, it tells
>me that it has received SIGINT and is shutting down.
>
>Any thoughts on why this would happen? I have no idea where to even
>begin looking.
>
>Thanks in advanced.
I think this is a long standing problem with Twisted's support of processes
on Windows. I thought there was a ticket for this, but it seems the closest
thing I can find is <http://twistedmatrix.com/trac/ticket/2726>, the scope
of which is a bit broader than just making signalProcess work.
It has been suggested that it is necessary to first OpenProcess to get a
handle to pass to TerminateProcess. The only reason this hasn't been
implemented is lack of interest (and, as you alluded, the unpleasantness
of doing anything related to Windows).
Jean-Paul
More information about the Twisted-Python
mailing list