CentOS添加文件到systemd目录后PostgreSQL 14无法启动求助
PostgreSQL 14服务启动失败排查(CentOS系统)
问题场景
在CentOS系统的systemd目录添加文件后,postgresql-14.service无法启动,报错信息如下:
Job for postgresql-14.service failed because the control process exited with error code. 请查看"systemctl status postgresql-14.service"和"journalctl -xe"获取详细信息。
相关日志输出
systemctl status 输出
Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: 正在启动PostgreSQL 14数据库服务器... Feb 08 20:47:38 82-166-106-208.barak-online.net postmaster[2525]: 2023-02-08 20:47:38.805 IST [2525] LOG: 将日志输出重定向到日志收集进程 Feb 08 20:47:38 82-166-106-208.barak-online.net postmaster[2525]: 2023-02-08 20:47:38.805 IST [2525] HINT: 后续日志输出将出现在"log"目录中。 Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: postgresql-14.service: 主进程已退出,code=exited,status=1/FAILURE Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: 启动PostgreSQL 14数据库服务器失败。 Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: 单元postgresql-14.service进入失败状态。 Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: postgresql-14.service启动失败。
journalctl -xe 输出
-- 单元postgresql-14.service已开始启动。 Feb 08 20:47:38 82-166-106-208.barak-online.net postmaster[2525]: 2023-02-08 20:47:38.805 IST [2525] LOG: 将日志输出重定向到日志收集进程 Feb 08 20:47:38 82-166-106-208.barak-online.net postmaster[2525]: 2023-02-08 20:47:38.805 IST [2525] HINT: 后续日志输出将出现在"log"目录中。 Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: postgresql-14.service: 主进程已退出,code=exited,status=1/FAILURE Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: 启动PostgreSQL 14数据库服务器失败。 -- 主题:单元postgresql-14.service启动失败 -- 定义者:systemd -- 支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- 单元postgresql-14.service启动失败。 -- -- 结果为失败。 Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: 单元postgresql-14.service进入失败状态。 Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: postgresql-14.service启动失败。 Feb 08 20:47:38 82-166-106-208.barak-online.net polkitd[774]: 注销unix-process:2512:147782的认证代理(系统总线名称:1.40,对象路径/org/freedesktop/PolicyKit1/AuthenticationAgent,区域设置en_IN lines 2104-2163/2163 (END)
排查与修复步骤
查看PostgreSQL详细日志
根据日志提示,PostgreSQL的具体启动日志会输出到它的log目录,默认路径为/var/lib/pgsql/14/log/,查看最新日志文件,定位核心报错(如配置语法错误、数据目录权限问题、端口占用等)。校验systemd配置变更
- 检查在systemd目录(通常为
/etc/systemd/system/或/usr/lib/systemd/system/)添加的文件,确认是否修改了postgresql-14.service的依赖、执行路径或权限规则。 - 执行
systemctl daemon-reload重新加载systemd配置,再尝试启动服务:systemctl start postgresql-14.service。 - 若添加了自定义service文件或drop-in配置,用
systemd-analyze verify postgresql-14.service验证语法正确性。
- 检查在systemd目录(通常为
修复文件权限问题
- 确认PostgreSQL数据目录(默认
/var/lib/pgsql/14/data/)及日志目录的所有者为postgres用户:chown -R postgres:postgres /var/lib/pgsql/14/ - 检查systemd服务文件权限,确保为
644:chmod 644 /usr/lib/systemd/system/postgresql-14.service
- 确认PostgreSQL数据目录(默认
检查端口与进程冲突
查看5432端口是否被占用:ss -tulpn | grep 5432若有冲突,停止占用进程或修改PostgreSQL配置文件
postgresql.conf中的port参数。手动启动测试
切换到postgres用户手动启动,直接获取报错信息:su - postgres /usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/
内容的提问来源于stack exchange,提问作者user12755014
相关产品推荐
相关产品推荐

