Ubuntu upstart 使用一个脚本来运行多个其他脚本

Ubuntu upstart 使用一个脚本来运行多个其他脚本

该脚本将启动以下服务:

#!upstart

description "example.com"
author      "Geert"

script
  for service in "website" "feeds" "jobs"
  do
    exec start service.example.com service=$service
  done
end script

服务脚本如下所示:

#!upstart

description "service.example.com"
author      "Geert"

start on (local-filesystems and net-device-up IFACE=eth0) 
stop  on shutdown

respawn                # restart when job dies

instance $service

script
  exec /home/fs/.nvm/v0.6.7/bin/coffee /home/fs/Dropbox/work/2012/krafters/$service.coffee
end script

我遇到的问题是它似乎只是在创建网站服务。

initctl list | grep example
example.com stop/waiting
service.example.com (website) start/running, process 22787

答案1

首先,Upstart 作业配置文件(.conf 文件)不是传统意义上的脚本:第一行(' #!upstart')是完全多余的,只会被视为注释。

您的问题是在第一个 .conf 文件中的 for 循环中使用了“ exec”: exec 用您提供给 exec 的任何参数替换当前正在运行的 shell,因此只会运行 for 循环中的第一个条目。

要修复此问题,只需删除exec第一个.conf 文件中的“ ”。

相关内容