カスタム postgresql.service
を作成する必要があります /etc/systemd/system/
のファイル 、デフォルトの PGDATA
をオーバーライドします 環境変数。カスタム サービス ファイルは .include
できます デフォルトの postgresql サービス ファイルなので、変更したいものを追加するだけで済みます。そのように、アップグレードはまだ変更/改善できますか?あなたの変更が保存されている間、デフォルトのサービスファイルに入れます。
これは、Centos 7 で行った方法です:
cat <<END >/etc/systemd/system/postgresql.service
.include /lib/systemd/system/postgresql.service
[Service]
Environment=PGDATA=/mnt/postgres/data ## <== SET THIS TO YOUR WANTED $PGDATA
END
systemctl daemon-reload
systemctl restart postgresql.service
確認:
ps -ax | grep [p]ostgres
更新:
手動でファイルを作成して .include 行を追加する代わりに、systemd 組み込みの方法を使用することもできます:
systemctl edit postgresql.service
これにより、デフォルトのエディターが開き、変更が /etc/systemd/system/postgresql.service.d/override.conf
に保存されます
それを行うための最も「CentOS 7の方法」は、サービスファイルをコピーすることだと思います:
sudo cp /usr/lib/systemd/system/postgresql-9.6.service /etc/systemd/system/postgresql-9.6.service
次に、ファイル /etc/systemd/system/postgresql-9.6.service を編集します。 :
# Location of database directory
Environment=PGDATA=/mnt/volume/var/lib/pgsql/9.6/data/
sudo systemctl start postgresql-9.6
を開始します そして検証:
# sudo ps -ax | grep postmaster
32100 ? Ss 0:00 /usr/pgsql-9.6/bin/postmaster -D /mnt/volume/var/lib/pgsql/9.6/data/
これを試してください:
## Login with postgres user
su - postgres
export PGDATA=/your_path/data
pg_ctl -D $PGDATA start &
本当の問題は、次のスレッドで作業した環境変数の設定にあったようです:Postgres サービスの Centos 7 環境変数問題は、カスタム /etc/systemd/system/postgresql-9.3.service 内に設定された PGDATA 変数です。デフォルトの PGDATA 変数を使用する /usr/lib/systemd/system/postgresql-9.3.service の内容から作成されます。