Devi creare un postgresql.service
personalizzato file in /etc/systemd/system/
, che sovrascrive il PGDATA
predefinito variabile d'ambiente. Il tuo file di servizio personalizzato può .include
il file di servizio postgresql predefinito, quindi devi solo aggiungere ciò che vuoi modificare. In questo modo, gli aggiornamenti possono ancora modificare/migliorare? roba nel file di servizio predefinito, mentre la tua modifica viene preservata.
Ecco come l'ho appena fatto in 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
Verifica :
ps -ax | grep [p]ostgres
Aggiornamento:
Anziché creare manualmente il file e aggiungere la riga .include, puoi anche utilizzare il metodo integrato di systemd:
systemctl edit postgresql.service
Questo aprirà il tuo editor predefinito e salverà le tue modifiche a /etc/systemd/system/postgresql.service.d/override.conf
Penso che il modo più "CentOS 7" per farlo sia copiare il file di servizio:
sudo cp /usr/lib/systemd/system/postgresql-9.6.service /etc/systemd/system/postgresql-9.6.service
Quindi modifica il file /etc/systemd/system/postgresql-9.6.service :
# Location of database directory
Environment=PGDATA=/mnt/volume/var/lib/pgsql/9.6/data/
Quindi avvialo sudo systemctl start postgresql-9.6
e verifica:
# sudo ps -ax | grep postmaster
32100 ? Ss 0:00 /usr/pgsql-9.6/bin/postmaster -D /mnt/volume/var/lib/pgsql/9.6/data/
prova questo:
## Login with postgres user
su - postgres
export PGDATA=/your_path/data
pg_ctl -D $PGDATA start &
Sembra che il vero problema fosse l'impostazione delle variabili d'ambiente, che ho ottenuto lavorando nel seguente thread:Centos 7 variabili d'ambiente per il servizio PostgresIl problema è la variabile PGDATA impostata all'interno del custom /etc/systemd/system/postgresql-9.3.service che dovrebbe essere creato dal contenuto di /usr/lib/systemd/system/postgresql-9.3.service che utilizza la var. PGDATA predefinita