[Twisted-Python] Suppressing terminal window from reactor.spawnProcess?
Eric Mangold
teratorn at twistedmatrix.com
Fri Feb 2 03:38:44 MST 2007
On Fri, 02 Feb 2007 02:00:49 -0600, Steve Freitas <sflist at ihonk.com> wrote:
> Hi,
>
> I'm doing a Twisted app on Windows. As part of its work it uses
> spawnProcess to temporarily spawn a process to communicate with. When I
> run the app from the command line in the usual fashion, spawnProcess()
> goes on and does its thing quietly and nicely. I then turned the Twisted
> app into a Windows Service, and now when it spawns the process, it opens
> a terminal window. Any idea how to suppress that? I tried the usePTY
> argument but of course that ain't supported on Windows.
>
> Thanks!
>
> Steve
Unfortunately Twisted doesn't have any way to alter this behavior.
Processes on Windows will inherit the parent's console by default. So when
you run from the command-line it doesn't need to create a new one.
But when run as a service I suspect that the parent process (Twisted) is
created DETACHED, so it doesn't have a console. But when you spawn a new
child it just uses the defaults which then gives you a console.
For what it's worth the win32 API flag of interest is DETACHED_PROCESS
documented here: http://msdn2.microsoft.com/en-us/library/ms684863.aspx
spawnProcess is currently slated for a redesign as per
http://twistedmatrix.com/trac/ticket/2415
I will make sure this concern is address in some form or fashion, but in
the mean time you will have to do some work yourself if you really need
this feature. Let use know if you get stuck :)
--
Eric Mangold
Twisted/Win32 Co-Maintainer
More information about the Twisted-Python
mailing list