4 votes

/var/run/postgresql manquant après le redémarrage

J'ai installé une machine Centos7 et j'ai des problèmes avec postgres qui ne démarre pas après le redémarrage. Même lorsque j'essaie de lancer le service manuellement, j'obtiens

UTC FATAL:  could not create lock file "/var/run/postgresql/.s.PGSQL.5432.lock": No such file or directory

En y regardant de plus près, j'ai remarqué que /var/run/postgresql n'est pas un événement existant après le redémarrage.

Il s'agit donc de quelques questions, car je n'ai pas trouvé de réponses claires dans mes recherches.

Comment et quand les répertoires dans /var/run sont-ils créés, est-ce que c'est quelque chose qui est créé au démarrage d'un service ou quelle est la procédure ?

Qu'est-ce qui pourrait causer ce problème spécifique et ne pas démarrer postgres après le redémarrage ?

Je n'ai jamais vu ce comportement auparavant, même si, en toute honnêteté, j'ai surtout utilisé ubuntu jusqu'à présent.

Remerciements

11voto

Eric Noob Points 531

Si vous examinez /var/run sur votre système, vous verrez qu'il s'agit en fait d'un lien symbolique vers /run :

# ls -ld /var/run
lrwxrwxrwx. 1 root root 6 Jan 19 09:12 /var/run -> ../run

Et si l'on examine /run vous verrez qu'il s'agit en fait d'un tmpfs point de montage :

# mount | grep /run
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)

A tmpfs est un système de fichiers en mémoire : tout ce qui s'y trouve disparaît lorsque le système redémarre. Comme le dit Federico dans son commentaire, CentOS 7 (et Fedora, et RHEL 7, etc.) utilise le système de fichiers systemd-tmpfiles pour créer automatiquement des éléments tels que des répertoires de verrouillage et d'autres emplacements de stockage éphémères lorsque le système démarre.

En postgresql-server inclus dans CentOS 7 fait déjà ce qu'il faut :

# rpm -ql postgresql-server | grep tmpfiles
/usr/lib/tmpfiles.d/postgresql.conf

# cat /usr/lib/tmpfiles.d/postgresql.conf
d /var/run/postgresql 0755 postgres postgres -

Si vous utilisez un paquetage postgresql tiers, ne vous étonnez pas qu'il ne s'intègre pas correctement à CentOS. Vous pouvez corriger cela manuellement en configurant le même fichier tmpfiles.d entrée présentée ici.

0voto

Vim Points 1

Ajoutez unix_socket_directories = ' /tmp' # liste de répertoires séparés par des virgules dans votre fichier de configuration postgresql. Le fichier doit se trouver quelque part sur (sur RHEL 7.x & CentOS 7.x)

/var/lib/pgsql/9.5/data/postgresql.conf

o

/var/lib/pgsql/data/postgresql.conf

puis redémarrez le serveur et votre service postgresql devrait démarrer sans problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X