CentOS6.2サーバーでPostgresql8.4をサービスとして実行しています。
port = 21444
ファイルにlisten_addresses = '*'
と/var/lib/pgsql/data/postgresql.conf
を設定しました
postmaster.opts
で5432を21444に変更し、postgresを再起動しましたが、netstat -lntp
を実行すると、postgresqlは引き続きポート5432で実行されます。
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 20276/postmaster
Postgresqlを再起動すると、/proc/self/oom_adj
に書き込みエラーの警告が表示されますが、とにかくサービスが開始されます。
仮想化サーバーを使用するとこのエラーが発生する可能性があることを読みましたが、これがpostgresqlリスニングポートに影響を与えるかどうかはわかりません。
正しいpgsql設定ファイルが/var/lib/pgsql/data
にロードされます:
[root@srv02 ~]# ps -ef | grep postgres
root 1358 22140 0 09:42 pts/0 00:00:00 grep postgres
postgres 9519 1 0 Mar16 ? 00:00:01 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data
postgres 9573 9519 0 Mar16 ? 00:00:00 postgres: logger process
postgres 9575 9519 0 Mar16 ? 00:00:05 postgres: writer process
postgres 9576 9519 0 Mar16 ? 00:00:03 postgres: wal writer process
postgres 9577 9519 0 Mar16 ? 00:00:01 postgres: autovacuum launcher process
postgres 9578 9519 0 Mar16 ? 00:00:01 postgres: stats collector process
何か考えはありますか?
多くの指示が示しているように、postgresql.confでポート番号を設定しようとすると同じ問題が発生します。あなたのps-efは次のように読みます:
/usr/bin/postmaster -p 5432
この行は、5432から始まることを示しています。
これはサービス開始スクリプトによって実行されます。私の場合(CentOS6.3 + postgresql-9.1)は次のとおりです。
/etc/rc.d/init.d/postgresql-9.1
読み取られた行があります:
# Override defaults from /etc/sysconfig/pgsql if file is present
[ -f /etc/sysconfig/pgsql/${NAME} ] && . /etc/sysconfig/pgsql/${NAME}
だから私がしたのは/ etc/sysconfig/pgsqlに行き、新しいファイルpostgresql-9.1を作成し、そこにPGPORT = 8100という1行を追加することだけです。上記の場合、PGDATA =を追加する必要があります。ファイル名はサービス名と同じである必要があることに注意してください。わからない場合は、
chkconfig --list | grep post*
見つけるために。
次に、次の方法でサーバーを再起動します。
Sudo service postgresql-9.1 restart.
restartアクションを使用して再起動しますか、それともstoppingサービスを使用してから、startingもう一度実行しますか?
私はUbuntuを持っていますが、再起動することであなたと同じ動作を得ることができましたが、postgresqlを停止して開始すると、新しいポートでリッスンしました。したがって、停止してから開始し、新しいポートでリッスンを開始するかどうかを確認してください。
/etc/init.d/postgresql-9.3
でPGPORT = 5432
を見つけてYour Desired Port Number
に変更し、再起動します。それは私の問題を解決しました。