web-dev-qa-db-ja.com

CentOS 7でPostgreSQLサーバーを再起動する方法

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.
14

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
26

Postgresqlのロールとしてsudogoerがある場合は、代わりに以下を使用できます。

Sudo systemctl restart postgresql
5
usr
$ 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として実行できません

1
Mir-Ismaili

(MX Linux(Debian 9、Stretch)で実行されているPostgresQL 11)も使用できます。

/etc/init.d/postgresql status

/etc/init.d/postgresql stop

/etc/init.d/postgresql restart
0
Lucky

サービスファイルの設定方法がわからないので、systemdコマンドをデバッグできません。 Sebastienが示唆するように、別の名前が付けられている可能性があります。

Pg_ctlに関しては、それはインストールがパスにディレクトリを追加しない結果です。 (これにはコメント here に記載されている理由があります)。解決方法はいくつかありますが、postgresユーザーのパスに/usr/pgsql-x.x/binを追加することをお勧めします。 postgresユーザーのPATH=$PATH:/usr/pgsql-x.x/bin.bash_profileを追加するだけで問題ありません。

0
medley56

確認してください /sbinは、serviceおよびsystemctlコマンドを実行する場合、パスの一部です。

0
Cheryl Grant