Re: postmaster.pid

Andrew Dunstan <[email protected]>
Newsgroups gmane.comp.db.postgresql.devel.win32
Message-ID <[email protected]>

Dave Page wrote:

>  
>
>     ------------------------------------------------------------------------
>     *From:* [email protected]
>     [mailto:[email protected]] *On Behalf Of
>     *Dave Page
>     *Sent:* 20 August 2004 20:57
>     *To:* Barry Lind; [email protected]
>     *Cc:* Max Dunn
>     *Subject:* Re: [pgsql-hackers-win32] postmaster.pid
>
>      
>      
>     I've been thinking about this problem as well, and think you might
>     just be on to something here. I'll look into this some more...
>      
>
> The correct way to do this is MoveFileEx("postmaster.pid", NULL, 
> MOVEFILE_DELAY_UNTIL_REBOOT);. This /should/ write a registry entry to 
> tell the system to delete the file at reboot. Unfortunately, it seems 
> that this is an administrator-only operation which of course means it 
> won't work when run under the postgresql service account.
>  
>

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). ISTM the correct solution would be to 
implement the effect of kill(pid,0) in port/kill.c, presumably by a call 
to some native Windows function that gives you the process info for a 
given pid.

cheers

andrew

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.