Я хочу изменить каталог данных пост-ГРЭС на /home/postgres/data
редактирование th postgresql.service вместо изменения файл /etc/postgresql/10/main/postgresql.conf
.
Так, я отредактировал сервис с
sudo systemctl edit postgresql.service
И добавил это строки:
[Service]
Environment=PGDATA=/home/postgres/data
И перезапустите de сервис с sudo servicetl restart postgresql.service
.
Но каталог данных не делает измененный.
Также редактирование postgresql@10-main.service
и перезагружают мой ноутбук, но каталог данных не изменился.
Как я могу изменить каталог данных для пост-ГРЭС с помощью systemctl сервисы или единицы?
Каталог данных должен быть установлен в postgresql.conf
файлах.
Почему?
Способ, которым PostgreSQL упакован в Ubuntu, postgresql.service
является зонтичной службой, которая может управлять несколькими экземплярами PostgreSQL, работающими одновременно (например, вы можете иметь 112] и 10/main2
или 9.6/main
), и они не могут использовать один и тот же $ PGDATA, поэтому определение его глобально на уровне зонтичной службы не может работать.
Кроме того, его локальное определение с помощью сервисных модулей, таких как postgresql@10-main.service
, может вызвать проблемы у команд, управляющих экземплярами PG, таких как pg_lsclusters
или pg_ctlcluster
, так как это не ясно. как они найдут каталог данных этих экземпляров. В настоящее время эти команды анализируют файлы конфигурации. Они делают это для каталога данных, но также и для других битов данных, таких как номер порта или каталоги сокетов домена Unix. Эта часть предоставляется пакетом postgresql-common
, который практически не зависит от systemd (и предшествует его принятию).