Re: pg_ctl strangeness under msys
- From: Andrew Dunstan <andrew(at)dunslane(dot)net>
- To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
- Cc: Magnus Hagander <mha(at)sollentuna(dot)net>, pgsql-hackers-win32 <pgsql-hackers-win32(at)postgresql(dot)org>
- Subject: Re: pg_ctl strangeness under msys
- Date: Tue, 26 Oct 2004 11:34:46 -0400
- Message-id: <417E6E96(dot)80806(at)dunslane(dot)net>
Bruce Momjian wrote:
Bruce Momjian wrote:
Magnus Hagander wrote:
I have seen some strange things using pg_ctl under MSys:
. "pg_ctl status" from the command line logs to the event log.
Apparently it thinks it's not on a tty. Works fine from
Windows cmd prompt.
. this hangs: perl -e '@foo=`pg_ctl -w start`;'
but this doesn't: perl -e 'system("pg_ctl -w start");'
Finding the problem with the last one has cost me hours in
trying to get the buildfarm to run.
Anyone have ideas about ways to fix? Or do we just note it
and live with it?
As I'm sure you are already aware we've had a lot of problems with the
msys console. Buffernig and others. I think we at some point decided to
say that minor issues on the win32 consoles isn't really something we're
concerned about, people will run things from the cmd console in 99.9% of
all cases.
Not sure how to fix it. The eventlog checking code uses isatty() IIRC,
and that one is clearly returning the wrong thing on msys. Not sure how
to code around that.
We actually added the ability to turn the psql pager always on to fix a
problem with a Win32 user running psql inside some kind of application
(emacs?) where isatty returned the wrong value. I don't see any clean
workaround here though.
Have you tried:
pg_ctl start 2>/dev/tty
that would force stderr to go to the tty. This might help because the
pg_ctl.c test is:
if (!isatty(fileno(stderr))) /* Running as a service */
This was about status, not start.
pg_ctl status 2>/dev/tty
gives me the same thing as before. But only if the postmaster isn't
running - if it is running I get the status as expected, because then we
write to stdout rather than calling write_stderr() - I'm not sure I
understand why we do that.
cheers
andrew
Home |
Main Index |
Thread Index