Thread: BUG #6074: postgresql service script
The following bug has been logged online: Bug reference: 6074 Logged by: Tomas Enrique Cardozo Baudry Email address: tomas.enrique.cardozo.baudry@gmail.com PostgreSQL version: 8.4.4 Operating system: Centos 5.6 Description: postgresql service script Details: configuring the posgresql.conf on another port the service doesnt load the port variable, because in the postgresql service script is a variable PGPORT and this rewrite the configuration variable solution (replace the port number with a script variable reader): PGDATA=/var/lib/pgsql/data #PGPORT=5432 #### <--- this is the bug PGPORT=`/bin/cat $PGDATA/postgresql.conf | /bin/grep â^port' | /bin/sed 's/port = //g'` tomas.enrique.cardozo.baudry@gmail.com, deshn.co.cc@gmail.com http://deshn.wikidot.com/howtos:bases-de-datos:postgresql:pgsql-service-scri pt
On 22/06/11 20:47, Tomas Enrique Cardozo Baudry wrote: > > The following bug has been logged online: > > Bug reference: 6074 > Logged by: Tomas Enrique Cardozo Baudry > Email address: tomas.enrique.cardozo.baudry@gmail.com > PostgreSQL version: 8.4.4 > Operating system: Centos 5.6 > Description: postgresql service script > Details: > > configuring the posgresql.conf on another port the service doesnt load the > port variable, because in the postgresql service script is a variable PGPORT > and this rewrite the configuration variable I'm pretty sure that init script is part of CentOS (probably really part of Red Hat Enterprise Linux), not part of PostgreSQL. The script should *not* respect values from the environment; it's a good thing that it doesn't. Otherwise setting PGPORT to tell psql what to do would as a side effect change what port the server listened on if you restarted it from that shell! What the script should do is get those settings from /etc/sysconfig or /etc/default (dunno which CentOS uses) so you don't have to hack the init script directly. -- Craig Ringer
Craig Ringer <craig@postnewspapers.com.au> writes: > On 22/06/11 20:47, Tomas Enrique Cardozo Baudry wrote: >> configuring the posgresql.conf on another port the service doesnt load the >> port variable, because in the postgresql service script is a variable PGPORT >> and this rewrite the configuration variable > I'm pretty sure that init script is part of CentOS (probably really part > of Red Hat Enterprise Linux), not part of PostgreSQL. The relevant part of the RHEL5 initscript is # Set defaults for configuration variables PGENGINE=/usr/bin PGPORT=5432 PGDATA=/var/lib/pgsql/data PGLOG=/var/lib/pgsql/pgstartup.log # Override defaults from /etc/sysconfig/pgsql if file is present [ -f /etc/sysconfig/pgsql/${NAME} ] && . /etc/sysconfig/pgsql/${NAME} As this indicates, you are supposed to change those settings with a script in /etc/sysconfig/pgsql/ if you need to change 'em. It's intentional that those settings win out over postgresql.conf. I'm not entirely sure that the OP is using the RHEL RPMs, though, because the fragment he quoted didn't quite match this. regards, tom lane
On Thu, Jun 23, 2011 at 4:52 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > I'm not entirely sure that the OP is using the RHEL RPMs, though, > because the fragment he quoted didn't quite match this. > It doesn't look like the script from the installers either. -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company