Vous devez créer un postgresql.service
personnalisé fichier en /etc/systemd/system/
, qui remplace le PGDATA
par défaut variables d'environnement. Votre fichier de service personnalisé peut .include
le fichier de service postgresql par défaut, il vous suffit donc d'ajouter ce que vous souhaitez modifier. De cette façon, les mises à niveau peuvent toujours modifier/améliorer ? dans le fichier de service par défaut, tandis que votre modification est conservée.
Voici comment je viens de le faire dans 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
Vérifier :
ps -ax | grep [p]ostgres
Mise à jour :
Plutôt que de créer manuellement le fichier et d'ajouter la ligne .include, vous pouvez également utiliser la méthode intégrée systemd :
systemctl edit postgresql.service
Cela ouvrira votre éditeur par défaut et enregistrera vos modifications dans /etc/systemd/system/postgresql.service.d/override.conf
Je pense que la manière la plus "CentOS 7" de le faire est de copier le fichier de service :
sudo cp /usr/lib/systemd/system/postgresql-9.6.service /etc/systemd/system/postgresql-9.6.service
Modifiez ensuite le fichier /etc/systemd/system/postgresql-9.6.service :
# Location of database directory
Environment=PGDATA=/mnt/volume/var/lib/pgsql/9.6/data/
Puis démarrez-le sudo systemctl start postgresql-9.6
et vérifiez :
# sudo ps -ax | grep postmaster
32100 ? Ss 0:00 /usr/pgsql-9.6/bin/postmaster -D /mnt/volume/var/lib/pgsql/9.6/data/
essayez ceci :
## Login with postgres user
su - postgres
export PGDATA=/your_path/data
pg_ctl -D $PGDATA start &
Il semble que le vrai problème était de définir les variables d'environnement, que j'ai travaillé dans le fil suivant :Variables d'environnement Centos 7 pour le service PostgresLe problème est la variable PGDATA définie dans le fichier personnalisé /etc/systemd/system/postgresql-9.3.service qui devrait être créé à partir du contenu de /usr/lib/systemd/system/postgresql-9.3.service qui utilise la variable PGDATA par défaut.