我正在开发一个使用暴发户来运行多个服务/守护进程的应用程序。 这些应该从系统启动开始,但是只有在数据库服务器(在我们的例子中是mongo)启动之后。 我正在寻找合适的新贵configuration,以使服务在启动时启动mongo,或者在mongo启动后才启动。
我不想修改任何不属于我们自己的软件的新兴configuration(例如修改mongo upstartconfiguration)。
一个方向是添加到我们的代码如下所示:
start on started mongod and runlevel [2345]
或者类似的东西,但我想这不是我想要的:我想让“mongo started”成为我们服务的一个需求,我不希望它触发我的脚本开始。 例如,如果有人手动停止我们的服务并重新启动mongo,我不希望这样,例如,我们的脚本也会无意中启动。
有什么build议么?
在init脚本的开始处有一个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
你将设置在你停止服务之前必须停止的服务。