• Alvaro Herrera's avatar
    Windows: Make pg_ctl reliably detect service status · a9676139
    Alvaro Herrera authored
    pg_ctl is using isatty() to verify whether the process is running in a
    terminal, and if not it sends its output to Windows' Event Log ... which
    does the wrong thing when the output has been redirected to a pipe, as
    reported in bug #13592.
    
    To fix, make pg_ctl use the code we already have to detect service-ness:
    in the master branch, move src/backend/port/win32/security.c to src/port
    (with suitable tweaks so that it runs properly in backend and frontend
    environments); pg_ctl already has access to pgport so it Just Works.  In
    older branches, that's likely to cause trouble, so instead duplicate the
    required code in pg_ctl.c.
    
    Author: Michael Paquier
    Bug report and diagnosis: Egon Kocjan
    Backpatch: all supported branches
    a9676139
win32.h 12.6 KB