连接到 PostgreSQL 失败,semctl ...参数无效

连接到 PostgreSQL 失败,semctl ...参数无效

我运行了 initdb,尝试使用 createuser -sdrP 创建一个新的超级用户我的用户

我得到的错误是

createuser: could not connect to database postgres: FATAL: semctl(3342342, 3, SETVAL, 0) failed: Invalid argument

我在互联网上找不到任何关于此问题的信息。我尝试过卸载、删除数据目录,然后重试,但无济于事。我已经束手无策了。

我在 jail 中运行,它运行的是 FreeBSD 9.2-RELEASE-p10。是的,我已设置 allow.sysvipc=1

答案1

PostgreSQL 很可能找不到它之前创建的信号量。另一个(不相关的)进程可能正在删除信号量(可能是调用 ipcrm 的脚本)。

在启动 PostgreSQL 后立即使用ipcs -s列出信号灯,然后在遇到问题时再次列出。除非另一个进程正在主动删除信号灯,速度比您ipcs -s在 PostgreSQL 启动后运行测试的速度快,否则您应该能够通过比较两个信号灯列表来确定 PostgreSQL 信号灯是否确实被删除。

这不会告诉您哪个 (root) 进程是罪魁祸首,但它确实为您指明了正确的方向。幸运的话,有问题的进程是一个脚本,在这种情况下,您可以搜索执行调用的 root 执行脚本ipcrm

相关内容