postgresql 无法正确启动退出活动(已退出)
Posted
技术标签:
【中文标题】postgresql 无法正确启动退出活动(已退出)【英文标题】:postgresql could not properly start exited with active (exited) 【发布时间】:2018-05-31 13:16:58 【问题描述】:我从digitalocean 安装了 posgresql,并在安装结束时在终端中打印以下命令
/usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile start
我尝试使用sudo root
用户运行它,也尝试切换到postgres
用户,但出现以下错误
等待服务器启动..../bin/sh: 1: 无法创建日志文件: 权限被拒绝停止等待 pg_ctl:无法启动服务器 但是当我检查状态时它说 ● postgresql.service - PostgreSQL RDBMS Loaded:已加载 (/lib/systemd/system/postgresql.service;已启用;供应商预设: 启用)活动:自 2018 年 5 月 31 日星期四 13:11:18 UTC 起活动(退出); 56 秒前 Main PID: 3698 (code=exited, status=0/SUCCESS) 任务:0(限制:2362)CGroup:/system.slice/postgresql.service
5 月 31 日 13:11:18 登台 systemd1:正在启动 PostgreSQL RDBMS... 5 月 31 13:11:18 staging systemd1: 启动 PostgreSQL RDBMS。
除了exited
,状态没有运行。上面的命令是做什么的,我该如何运行它?以前的版本没遇到过
【问题讨论】:
【参考方案1】:这个想法是您提供实际的日志文件而不是 logfile
,但我建议您在 postgresql.conf
中正确配置日志记录,并使用不带 -l
选项的 pg_ctl
。
logging_collector
设置为on
。
将log_filename
设置为postgresql-%a.log
。
将log_rotation_size
设置为0。
将log_truncate_on_rotation
设置为on
。
然后,您将在 PostgreSQL 数据目录的 log
子目录中获取日志文件,它们将每周轮换一次。
【讨论】:
但是这个命令的作用以及为什么 sudo 不起作用。是说在您提到的程序之后我不需要运行上述命令? 您显然位于没有写入权限的目录中,因此出现错误消息。如果您按照我的建议配置日志记录,您仍然需要使用pg_ctl
启动服务器,但您不再需要使用-l
选项。以上是关于postgresql 无法正确启动退出活动(已退出)的主要内容,如果未能解决你的问题,请参考以下文章
C++笔记:error MSB6006: “CL.exe”已退出,代码为 2 + VS无法启动程序,系统找不到指定的文件
错误记录Ubuntu 下 VSCode 编译报错 ( 无法生成和调试,因为活动文件不是 C 或 C++ 源文件。终端进程启动失败(退出代码: -1)。终端将被任务重用,按任意键关闭。 )