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