如何使用 upstart 让启用了 bundler 的 rails 应用作为服务运行?

如何使用 upstart 让启用了 bundler 的 rails 应用作为服务运行?

我可以让一些随机的 shell 脚本作为服务运行...这不是问题。根据我进行的一些 Google 搜索,我认为这与环境变量有关。所需的 rails 环境变量列表或作为服务运行的示例 rails 应用程序都会有所帮助。

我找到了这个:
https://serverfault.com/questions/327965/how-to-start-a-rake-task-using-upstart
这很有帮助,但它整合了 rvm。我喜欢 rvm,但我正在寻找一种没有这种额外复杂性的方法。不过我可能被迫这样做……

答案1

假设bundle install --deployment --binstubs确保你创建了一个存根bin/bundle(Bundler 不会这样做)。然后在/etc/init/your-app.conf

start on started network-services
stop on stopping network-services

<set env variables you need>

script
pushd <Your app's Gemfile folder>
bin/bundle exec ....
end script

之后,你必须运行

initctl reload-configuration

那就可以了。

相关内容