Andrew Dunstan <andrew@dunslane.net> writes:
> I think we're on the wrong track here. If there is a pid file then the
> postmaster will try to see if the process is running by calling
> kill(pid,0) - see backend/utils/init/miscinit.c.
> However, on Windows we simulate kill(), and always return EINVAL if the
> signal <= 0 (see port/kill.c).
That's clearly broken. Should you not send the zero signal the same way
as other signals, and just let the recipient ignore it? (This assumes
that the pre-existing postmaster is accessible to a would-be new
postmaster's kill ... is that true?)
regards, tom lane