win2k, service, pg_ctl, popen, etc - Mailing list pgsql-hackers-win32

From Magnus Hagander
Subject win2k, service, pg_ctl, popen, etc
Date
Msg-id 6BCB9D8A16AC4241919521715F4D8BCE1716D9@algol.sollentuna.se
Whole thread Raw
Responses Re: win2k, service, pg_ctl, popen, etc
List pgsql-hackers-win32
Hi!

Been trying to find out why things don't work well on Windows 2000. The
closest I've come to a solution is that popen() does not work on windows
2000 *when running as a service*. This isused in find_other_exec(),
which is what pg_ctl uses to find postmaster.exe. It does appear to work
fine on XP and 2003. Haven't tested NT4.
The symptoms are popen() returning NULL, with both errno and
GetLastError() set to 0.

Anyone know *why* this doesn't work?

If we don't know why, sign one more down as a bug in mingw (hardly
surprising - just the area of pipes and consoles seems to be where it's
weak). In that case, why not just recode pg_ctl to execute
postmaster.exe from the same directory it found pg_ctl.exe in. This can
easily be done using GetModuleFileName(). Is a pipe opened at any other
place? Or does other places need to be fixed as well (I haven't gone
through the whole code).

Oh, and also - has *anybody* got the service running wit hpg_ctl as
service wrapper on windows 2000? In that case, it's version or
environment dependent...

Thoughts?

//Magnus


pgsql-hackers-win32 by date:

Previous
From: "Magnus Hagander"
Date:
Subject: Re: psql_service v0.11
Next
From: "Magnus Hagander"
Date:
Subject: Re: win2k, service, pg_ctl, popen, etc