Hi,
On Wednesday 25 August 2004 16:21, Magnus Hagander wrote:
> > >> > But sure, we don't really care if it's a postmaster. Then
> > >> > OpenProcess() is probably the best way, yes.
> > >>
> > >> Au contraire!! One of the problems with the Unix
> >
> > implementation is
> >
> > >> that you *can't* tell for sure if the target process is a
> >
> > postmaster.
> >
> > >> See past discussions about how startup occasionally fails
> >
> > because we
> >
> > >> get fooled by the PID mentioned in postmaster.pid now belonging to
> > >> pg_ctl or some other Postgres-owned process.
> > >>
> > >> This is a place where the Windows version can actually be
> >
> > better than
> >
> > >> the Unix one. Please fix it and stop imagining that your
> >
> > charter is
> >
> > >> to duplicate a particular Unix syscall bug-for-bug.
> > >
> > > Ok, if you say so :-) I had the general impression we
> >
> > wanted that. But
> >
> > > then let's go with the
> > > send-signal-0-down-the-pipe-and-ignore-it-in-the-backend. :-)
Well, wouldn't it be better then to do an OS-dependant check for a running
postmaster, which could use kill() on IMHO broken systems where it's not easy
to determine the processname for a PID, and more elaborate checking on
others. On Windows, there's OpenProcess et al, on Linux, one could resort
to /proc. I didn't develop on too many others, but there should be
possibilities for those, too.
Greetings,
Jörg
--
Leading SW developer - S.E.A GmbH
Mail: joerg.hessdoerfer@sea-gmbh.com
WWW: http://www.sea-gmbh.com