我可以让一些随机的 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
那就可以了。