【发布时间】:2021-08-21 15:39:03
【问题描述】:
我正在尝试在 Windows Server 2008 R2 上运行 PostgreSQL,作为 JFrog Artifactory 的依赖项。当我尝试启动服务时,出现以下错误:
本地计算机上的 postgresql-x64-9.5 服务启动然后停止。如果某些服务没有被其他服务或程序使用,它们会自动停止。"
我尝试过的:
- 删除 postmaster.pid 文件,因为它可能仍使用以前会话中的此文件。
- 从最近一次运行中删除“postgres”的旧进程。
这些建议被这篇关于堆栈溢出的帖子采纳: click here
在我上面写的帖子中我已经尝试过答案。
比我尝试从命令行启动 postgres windows 服务,我得到这个错误:
[4200] FATAL: lock file "postmaster.pid" already exists
[4200] HINT: Is another postmaster (PID 6172) running in data directory "H:/data/9.5"?
有谁知道为什么会发生这种情况?
【问题讨论】:
-
这是一个通用的 Windows 服务错误,而不是 PostgreSQL 错误,因此它并不能真正告诉我们关于为什么启动失败的任何有用信息。开始的地方是查找 PostgreSQL 的日志,并将它们包含在您在某个地方提出的任何问题中(例如 SuperUser)。
-
也就是说,这个问题在这里完全是题外话(您链接的另一个实例也是如此)。 Stack Overflow 是针对编写代码而不是系统管理的问题。
-
...所以,
FATAL: lock file "postmaster.pid" already exists问题将通过使用该锁定文件终止任何进程来解决,然后如果该文件仍然存在则删除该文件。一旦你这样做了,你会得到什么错误? (如果 pidfile 被自动重新创建,可能是服务在这样做;在调查期间禁用它)。 -
...也就是说——您已经遵循的步骤确实可以解决那个特定的错误,但之后可能会发生不同的错误;我们也需要知道那个是什么。 (如果事实证明其他故障模式留下了 pidfile,那么这将阐明您如何回到需要删除 pidfile 的位置,然后才能达到更深层次的错误调查它)。
标签: windows postgresql artifactory