我有Centos7机器设置,我遇到postgres重启后无法启动的问题.即使我尝试手动运行该服务,我也会得到
UTC FATAL: could not create lock file "/var/run/postgresql/.s.PGsql.5432.lock": No such file or directory
仔细看看,我注意到/ var / run / postgresql在重启后不存在事件.
所以真的有几个问题,因为我在研究中没有找到明确的答案.
如何在/ var / run中创建目录,是否在启动服务时创建了什么或者是什么方式?
什么可能导致这个特定问题发生,而不是重启后启动postgres?
我以前从未见过这种行为,虽然平心而论,到目前为止我一直在使用ubuntu.
谢谢
如果检查系统上的/ var / run,你会发现它实际上是/ run的符号链接:
原文链接:https://www.f2er.com/centos/373601.html# ls -ld /var/run lrwxrwxrwx. 1 root root 6 Jan 19 09:12 /var/run -> ../run
如果你检查/运行,你会发现它实际上是一个tmpfs挂载点:
# mount | grep /run tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs文件系统是一个内存中的文件系统:当系统重新启动时,任何东西都会消失.正如Federico在评论中所说,CentOS 7(以及Fedora和RHEL 7等)使用systemd-tmpfiles工具在系统启动时自动创建锁目录和其他临时存储位置等内容.
CentOS 7中包含的postgresql-server软件包已经做了正确的事情:
# 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 -
如果您使用的是第三方postgresql软件包,请不要惊讶它没有与CentOS正确集成.您可以通过设置此处显示的相同tmpfiles.d条目来手动更正.