Re: pg_ctl strangeness under msys
От | Andrew Dunstan |
---|---|
Тема | Re: pg_ctl strangeness under msys |
Дата | |
Msg-id | 417E6E96.80806@dunslane.net обсуждение исходный текст |
Ответ на | Re: pg_ctl strangeness under msys (Bruce Momjian <pgman@candle.pha.pa.us>) |
Ответы |
Re: pg_ctl strangeness under msys
|
Список | pgsql-hackers-win32 |
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
В списке pgsql-hackers-win32 по дате отправления: