我有一个服务配置为 upstart 作业。如何确保在启动服务之前 PostgreSQL 正在运行?Ubuntu 14.04 在此处。
答案1
这里的问题是 PostgreSQL 尚未被 Upstart 感知。这使事情变得复杂。您可以只检查您的版本/集群是否存在 PID 文件,但如果不存在,您该怎么办?
我选择将我的服务 (pgagent) 的启动与 pg 集群的启动联系起来。这对我来说很有效,但对你来说可能不行。此外,pgagent 的 forky 太多(fork 超过两次),upstart 无法跟踪其 PID,所以我无法使用该respawn
节。你的服务可能没问题。
有关使用集群启动通过 Upstart 启动服务的示例,请参阅我的冒险经历这里。