web-dev-qa-db-ja.com

コマンドが見つかりません:Ubuntuのpg_ctl

PostgreSQL 9.4.8 Ubuntu 16.04 64ビット

ここで何が起こっているのかを説明したいだけです。このコマンドが見つからないのはなぜですか?他には何もありません。

malikarumi@Tetuoan2:/usr/lib/postgresql/9.4/bin$ pg_ctl stop -m fast
pg_ctl: command not found
malikarumi@Tetuoan2:/usr/lib/postgresql/9.4/bin$ Sudo pg_ctl stop -m fast
[Sudo] password for malikarumi: 
Sudo: pg_ctl: command not found
malikarumi@Tetuoan2:/usr/lib/postgresql/9.4/bin$ ls
clusterdb   initdb             pg_ctl          pg_restore      postmaster
createdb    oid2name           pg_dump         pg_standby      psql
createlang  pg_archivecleanup  pg_dumpall      pg_test_fsync   reindexdb
createuser  pg_basebackup      pg_isready      pg_test_timing  vacuumdb
dropdb      pgbench            pg_receivexlog  pg_upgrade      vacuumlo
droplang    pg_config          pg_recvlogical  pg_xlogdump
dropuser    pg_controldata     pg_resetxlog    postgres
malikarumi@Tetuoan2:/usr/lib/postgresql/9.4/bin$
3
Malik A. Rumi

pg_ctlは、設計上、Debian(およびUbuntu)が配布するPostgreSQLのバージョンのパスには含まれていません。 PostgreSQLはサービスとしてDebian/Ubuntuにインストールされます

Sudo service postgresql {start|stop|restart|reload|force-reload|status} [version ..]

このコマンドは、init.dをラップするpg_ctlclusterスクリプトを呼び出します。 /etc/init.d/postgresqlを開くと確認できます。必要に応じて、pg_ctlclusterを呼び出すことができます。 pg_ctrlclusterは、仕様上(パスで)公開されないpg_ctlをラップするPerlスクリプトです。

pg_ctrlcluster:マルチバージョン/クラスター対応のpg_ctlラッパー;これはまた、「開始」するための正しい構成パラメーターを提供し、postgresが「停止」で本当に停止することを確実にします。

pg_ctlは技術的に配布されていますが、直接呼び出す必要はありません。それを実行するには

find /usr/lib/postgresql/ -name pg_ctl

フルパスでpg_ctlを明示的に呼び出すことはできますが、できません

また、上から先に進み、釣り方を教えると、後でこの種の質問がある場合はいつでもaproposを使用できます。

$ apropos pg_ctl
pg_ctl (1)           - initialize, start, stop, or control a PostgreSQL server
pg_ctlcluster (1)    - start/stop/restart/reload a PostgreSQL cluster
11
Evan Carroll