![如何将 PostgreSQL 作为 daemontools 服务运行?](https://linux22.com/image/95784/%E5%A6%82%E4%BD%95%E5%B0%86%20PostgreSQL%20%E4%BD%9C%E4%B8%BA%20daemontools%20%E6%9C%8D%E5%8A%A1%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
- svscanboot 已运行并添加到自动启动
- 添加了文章中的脚本http://thedjbway.b0llix.net/services/postgresql.html到 /service/postgres/run 并更改模式 a+x,root 所有者
- 添加服务:svc -u /service/postgres
- 检查 svstat /service/postgres,脚本未运行
答案1
完全按照该教程进行操作,您也应该拥有一个日志服务。日志服务会有信息在其日志文件中关于主服务失败的原因。您可以使用tail
、grep
和读取日志文件less
。
Vanilla daemontoolssvstat
仅告诉您服务当前是启动还是关闭。您没有理由断言该脚本未运行。确实,很有可能做过跑步;日志服务的日志文件中的错误消息将告诉您它在执行此操作时输出了什么错误消息。
当然,您可以让脚本以完全普通的方式解释更多操作。毕竟它是一个解释脚本,因此可以像在任何其他 shell 脚本中一样使用#!/bin/sh
shell-v
和选项。-x
您在日志中找到的最有可能的候选内容是postmaster
不在您的日志中,而是位于类似或PATH
的子目录中。在这种情况下,您必须将其调用为,或者必须在脚本中添加您的路径,以便它在作为普通旧的 unadorned 调用时找到该程序。后者在 PostgreSQL 文档 qv 中进行了解释。/usr/lib/postgresql/
/usr/local/pgsql
/usr/lib/postgresql/bin/postmaster
/usr/lib/postgresql/bin/
postmaster