Upstart:定义服务依赖关系/优先级

Upstart:定义服务依赖关系/优先级

我正在开发一个使用 upstart 运行多个服务/守护进程的应用程序。这些服务/守护进程应该在系统启动时启动,但只有在数据库服务器(在我们的例子中是 mongo)启动后才会启动。我正在寻找正确的 upstart 配置,以使服务在启动时启动 mongo 或仅在 mongo 启动后启动。

我不想修改任何不属于我们自己软件的 upstart 配置(例如修改 mongo upstart 配置)。

一个方向是在我们的代码中添加类似以下内容:

start on started mongod and runlevel [2345] 

或者类似的东西,但我认为这不是我想要的:我希望“mongo 启动”成为我们服务的必要条件,我不希望它触发我的脚本启动。例如,我不希望如果有人手动停止我们的服务并重新启动 mongo,我们的脚本也会无意中启动。

有什么建议么?

答案1

在初始化脚本的开头有一个INIT INFO块:

### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO

前三行是您必须进行更改以执行您想要执行的操作的地方。 Provides说明您的脚本正在提供什么服务。 Required-Start是您放置依赖项的地方,就像mongod您的情况一样,如果是这种情况,Required-Stop您将设置在停止服务之前必须停止的服务。

相关内容