pg_ctl and port number detection

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: PostgreSQL-development <pgsql-hackers@postgreSQL.org>
Date: 2010-12-18T18:22:07Z
Lists: pgsql-hackers
pg_ctl.c::test_postmaster_connection() has some fragile code that tries
to detect the server port number by looking in the pg_ctl -o string,
postgresql.conf, the PGPORT environment variable, and finally using the
default port number.

I think a simpler solution would be to look in postmaster.pid:

	10231
	/u/pgsql/data
	  5432001  45481984

pg_ctl already knows the data directory.  If the file is missing, the
server is not running.  If the file exists, the first number on the last
line, divided by 1000, is the port number.  We can then use this port
number for libpq to check for connectivity.

Comments?

-- 
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +