On Thu, May 15, 2014 at 03:46:20PM +0000, erica.stine@mailinator.com wrote:
> The following bug has been logged on the website:
>
> Bug reference: 10330
> Logged by: Erica Stine
> Email address: erica.stine@mailinator.com
> PostgreSQL version: 9.3.4
> Operating system: Windows 7 64-bit Ultimate
> Description:
>
> This executable:
>
> https://github.com/cubiclesoft/createprocess-windows
>
> Allows users to start processes in all sorts of ways that exceed the
> limitations of the 'start' command by exposing the full power of the
> CreateProcess() API to the command-line. The Apache web server, for
> instance, has the problem of starting a hung command prompt using 'start'.
> However, using the above tool and calling it with /f=DETACHED_PROCESS causes
> 'httpd.exe' to correctly and silently start in the background.
>
> 'pg_ctl.exe', on the other hand, does not honor DETACHED_PROCESS and
> proceeds to create a new console window. There doesn't appear to be an
> option to override this undesirable behavior. Trying to use 'postgres.exe'
> directly with DETACTHED_PROCESS (and using the stdin, stdout, stderr
> options) results in four brand new console windows. It looks like each
> 'postgres.exe' process gets its own console window.
>
> The fix for this is to NOT create a console window if it doesn't exist and
> pass DETACHED_PROCESS to new processes so that the OS isn't creating console
> windows either based on executable type. I'm not alone in wanting a
> detached startup. Those of us who want isolated installs want to run
> PostgreSQL in a portable apps style format, behind the scenes, without using
> the Windows Services host.
I know we work around it somehow in the script we use to start Postgres
as a Windows server. It would be nice to have these flags in the pg_ctl
executable, but none of our developers know how to write such code, or
at least I have not seen it.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ Everyone has their own god. +