Thread: postgres under linux can't start because of postmaster.pid
I construct a postmaster.pid file and then set the pid to be one of existing process id(not postgres, e.g vim), then I run postgres. This may happen if postgres crashed last time and left a postmaster.pid file, and last postgres id is reused by another process which is not postgres now. What I expect is that postgres runs normally and overwrites postmaster.pid with new postgres id. In windows it succeeds, but in linux it reports error as follows: FATAL: lock file "postmaster.pid" already exists HINT: Is another postmaster (PID 9899) running in data directory "/home/hcwang/threading/bin/data"? the pid file content is as follows: 9899 /home/hcwang/postgres/bin/data 5432001 0 and I run 'ps -u hcwang' 9899 pts/8 00:00:00 vim Is this a bug or? Why pg under windows and linux have different behavior?
"Richard Wang" <ruc_wang@hotmail.com> writes: > I construct a postmaster.pid file and then set the pid to be one of existing > process id(not postgres, e.g vim), then I run postgres. This may happen if > postgres crashed last time and left a postmaster.pid file, and last postgres > id is reused by another process which is not postgres now. Don't do that. The postmaster is perfectly capable of recovering on its own, why would you want to mess with the postmaster.pid file? regards, tom lane
I just consider this may happens and pg can't recover correctly: if postgres crashed last time and left a postmaster.pid file, and last postgres id is reused by another process which is not postgres now. "Tom Lane" <tgl@sss.pgh.pa.us> д����Ϣ����:29598.1193228404@sss.pgh.pa.us... > "Richard Wang" <ruc_wang@hotmail.com> writes: >> I construct a postmaster.pid file and then set the pid to be one of >> existing >> process id(not postgres, e.g vim), then I run postgres. This may happen >> if >> postgres crashed last time and left a postmaster.pid file, and last >> postgres >> id is reused by another process which is not postgres now. > > Don't do that. The postmaster is perfectly capable of recovering on > its own, why would you want to mess with the postmaster.pid file? > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 7: You can help support the PostgreSQL project by donating at > > http://www.postgresql.org/about/donate >
"Richard Wang" <ruc_wang@hotmail.com> writes: > I just consider this may happens and pg can't recover correctly: > if postgres crashed last time and left a postmaster.pid file, and last > postgres > id is reused by another process which is not postgres now. Postgres defends itself against that just fine, at least in any reasonably recent release. There are some corner cases where it could have problems, but scripted hacking on the .pid file is just about guaranteed to make things worse not better. regards, tom lane