J'ai installé PostgreSQL 10.1 sous un environnement CentOS 7.3.
Le service est démarré (postmaster.pid
fichier présent sous /var/lib/pgsql/10/data
), mais je dois recharger la configuration ou redémarrer le serveur suite à une modification de pg_hba.conf
.
Cependant, en essayant différentes commandes, j'obtiens ce qui suit:
pg_ctl reload -D /var/lib/pgsql/10/data
bash: pg_ctl: command not found
service postgresql reload
Redirecting to /bin/systemctl reload postgresql.service
Failed to reload postgresql.service: Unit not found.
J'ai découvert que vous devez spécifier le nom exact pour le service PostgreSQL, que vous pouvez trouver sous la liste des services, en utilisant systemctl
(voir aussi post ):
systemctl list-units|grep postgresql
postgresql-10.service loaded active running PostgreSQL 10 database server
Ensuite, vous pouvez utiliser service
:
service postgresql-10.service reload
ou
service postgresql-10.service restart
Vous pouvez également utiliser la commande systemctl
:
/bin/systemctl reload postgresql-10.service
ou
/bin/systemctl restart postgresql-10.service
Si vous avez sudogoer comme rôle dans postgresql, vous pouvez également utiliser:
Sudo systemctl restart postgresql
$ Sudo systemctl restart postgresql-10
Ou mieux:
$ /usr/pgsql-10/bin/pg_ctl reload
Ou d'abord (une fois):
$ Sudo ln -s /usr/pgsql-10/bin/pg_ctl /usr/bin/pg_ctl
puis (à chaque fois):
$ pg_ctl reload
Remarque: pg_ctl
ne peut pas être exécuté en tant que root.
Vous pouvez également utiliser (PostgresQL 11 fonctionnant sur MX Linux (Debian 9, Stretch)) -
/etc/init.d/postgresql status
/etc/init.d/postgresql stop
/etc/init.d/postgresql restart
Je ne sais pas comment votre fichier de service est configuré, je ne peux donc pas déboguer votre commande systemd. Il est possible qu'il porte un nom différent, comme le suggère Sébastien.
Quant à pg_ctl, c'est le résultat de l'installation qui n'ajoute pas le répertoire au chemin. (Il y a des raisons pour cela mentionnées dans les commentaires ici ). Il existe plusieurs façons de résoudre le problème, mais je recommande simplement d'ajouter /usr/pgsql-x.x/bin
vers le chemin de l'utilisateur postgres. Ajoutez simplement PATH=$PATH:/usr/pgsql-x.x/bin
à l'utilisateur de postgres .bash_profile
et vous devriez être prêt à partir.
Assure-toi /sbin
fait partie de votre chemin si vous exécutez les commandes service
et systemctl
.