我正在将一个项目部署到部署了多个应用程序的环境中。所以我使用 rvm 来分离每个 Rails 应用程序的运行环境。
在我的应用程序中,我使用 gemgod
来管理我的延迟作业流程,在我的上帝文件中,我有:
God.watch do |w|
...
w.start = "RAILS_ENV=#{RAILS_ENV} /usr/local/rvm/bin/rvm in #{RAILS_ROOT} do #{RAILS_ROOT}/script/delayed_job -n 1 start"
...
end
但为此,上帝报告:
/usr/local/rvm/gems/ruby-1.9.3-p327-falcon@global/gems/god-0.13.2/lib/god/process.rb:324:in `exec': No such file or directory - RAILS_ENV=staging /usr/local/rvm/bin/rvm in /home/deployer/deploy/myproject/current do /home/deployer/deploy/myproject/current/script/delayed_job stop (Errno::ENOENT)
如果我将其更改为:
w.start = "export RAILS_ENV=#{RAILS_ENV} /usr/local/rvm/bin/rvm in #{RAILS_ROOT} do #{RAILS_ROOT}/script/delayed_job -n 1 start"
有用。我想知道添加export
是否是在多应用程序环境中执行此操作的正确方法,因为在该服务器上,还有其他应用程序在其下运行RAILS_ENV=production
,它们会受到影响吗?
更新
我刚刚发现我错了,添加export
到开头,God
仍然抛出同样的错误,我怎么能做到这一点?
谢谢和最好的问候。