例如,我使用以下命令启动和停止特定的Web应用程序:
/usr/local/application/MyServiceController.sh all.start /usr/local/application/MyServiceController.sh all.stop
这些命令执行一些设置任务并启动几个进程(httpd和java)。 我想用新贵来监视和控制应用程序,但是我不想偏离供应商支持的启动过程。
这是可能的,还是应该回落到一个SysV风格的初始化脚本?
如果有Upstart监控服务不是必不可less的,你可以做如下的事情(Upstart Cookbook: Single Job Instance Running Without PID ):
start on filesystem # or something more suitable stop on runlevel [06] # ditto pre-start exec /usr/local/application/MyServiceController.sh all.start post-stop exec /usr/local/application/MyServiceController.sh all.stop
这几乎等同于一个sysvinit脚本(它不会有监视)。
至于让Upstart来监视和重新生成服务,恐怕没有人想出一种方法来自动将任意脚本启动一系列独立服务(相互依赖),转换为一组等同的Upstart作业。