Necesitas crear un postgresql.service
personalizado archivo en /etc/systemd/system/
, que anula el PGDATA
predeterminado Variable ambiental. Su archivo de servicio personalizado puede .include
el archivo de servicio postgresql predeterminado, por lo que solo necesita agregar lo que desea cambiar. De esa manera, ¿las actualizaciones aún pueden modificar/mejorar? cosas en el archivo de servicio predeterminado, mientras que su cambio se conserva.
Así es como lo acabo de hacer en 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
Verificar:
ps -ax | grep [p]ostgres
Actualización:
En lugar de crear manualmente el archivo y agregar la línea .include, también puede usar la forma integrada de systemd:
systemctl edit postgresql.service
Esto abrirá su editor predeterminado y guardará sus cambios en /etc/systemd/system/postgresql.service.d/override.conf
Creo que la "manera más CentOS 7" de hacerlo es copiar el archivo de servicio:
sudo cp /usr/lib/systemd/system/postgresql-9.6.service /etc/systemd/system/postgresql-9.6.service
Luego edite el archivo /etc/systemd/system/postgresql-9.6.service :
# Location of database directory
Environment=PGDATA=/mnt/volume/var/lib/pgsql/9.6/data/
Luego inícielo sudo systemctl start postgresql-9.6
y verificar:
# sudo ps -ax | grep postmaster
32100 ? Ss 0:00 /usr/pgsql-9.6/bin/postmaster -D /mnt/volume/var/lib/pgsql/9.6/data/
prueba esto:
## Login with postgres user
su - postgres
export PGDATA=/your_path/data
pg_ctl -D $PGDATA start &
Parece que el problema real fue configurar las variables de entorno, que conseguí trabajar en el siguiente hilo:Variables de entorno de Centos 7 para el servicio de Postgres El problema es la variable PGDATA configurada dentro del servicio personalizado /etc/systemd/system/postgresql-9.3. ser creado a partir del contenido de /usr/lib/systemd/system/postgresql-9.3.service que utiliza la var. PGDATA predeterminada.