CentOS 7.3環境にPostgreSQL 10.1をインストールしました。
サービスは開始されていますが(postmaster.pid
の下に存在する/var/lib/pgsql/10/data
ファイル)、pg_hba.conf
の変更後に構成を再ロードするか、サーバーを再起動する必要があります。
ただし、別のコマンドを試すと、次のようになります。
pg_ctl reload -D /var/lib/pgsql/10/data
bash: pg_ctl: command not found
service postgresql reload
Redirecting to /bin/systemctl reload postgresql.service
Failed to reload postgresql.service: Unit not found.
PostgreSQLサービスのexactの名前を指定する必要があることがわかりました。サービスのリストの下で、systemctl
を使用します(これも参照 post ):
systemctl list-units|grep postgresql
postgresql-10.service loaded active running PostgreSQL 10 database server
次に、service
を使用できます。
service postgresql-10.service reload
または
service postgresql-10.service restart
または、systemctl
コマンドを使用できます。
/bin/systemctl reload postgresql-10.service
または
/bin/systemctl restart postgresql-10.service
Postgresqlのロールとしてsudogoerがある場合は、代わりに以下を使用できます。
Sudo systemctl restart postgresql
$ Sudo systemctl restart postgresql-10
以上:
$ /usr/pgsql-10/bin/pg_ctl reload
または最初(1回限り):
$ Sudo ln -s /usr/pgsql-10/bin/pg_ctl /usr/bin/pg_ctl
その後(毎回):
$ pg_ctl reload
注:pg_ctl
はrootとして実行できません。
(MX Linux(Debian 9、Stretch)で実行されているPostgresQL 11)も使用できます。
/etc/init.d/postgresql status
/etc/init.d/postgresql stop
/etc/init.d/postgresql restart
サービスファイルの設定方法がわからないので、systemdコマンドをデバッグできません。 Sebastienが示唆するように、別の名前が付けられている可能性があります。
Pg_ctlに関しては、それはインストールがパスにディレクトリを追加しない結果です。 (これにはコメント here に記載されている理由があります)。解決方法はいくつかありますが、postgresユーザーのパスに/usr/pgsql-x.x/bin
を追加することをお勧めします。 postgresユーザーのPATH=$PATH:/usr/pgsql-x.x/bin
に.bash_profile
を追加するだけで問題ありません。
確認してください /sbin
は、service
およびsystemctl
コマンドを実行する場合、パスの一部です。