【发布时间】:2012-10-29 08:46:35
【问题描述】:
我想在我的 Rails 项目中使用 Daemons gem,这样我就可以使用 Monit 轻松监控它,这个 gem 将允许我创建 PID 并使用 start 和 stop 等命令。
无论如何,我似乎无法将它与 rails 一起使用,我创建了一个文件并将其命名为 admin:
require 'rubygems'
require 'daemons'
ROOT_PATH = File.expand_path("#{File.dirname __FILE__}/../")
require "#{ROOT_PATH}/config/environment"
Daemons.run("#{ROOT_PATH}/script/rails" ,
:dir_mode => :system,
:log_output => true
)
当我尝试运行它时:
bundle exec ./bin/admin run -- s
我得到这个错误:
/Users/info/.rvm/gems/ruby-1.9.3-p286/gems/rake-0.8.7/lib/rake/alt_system.rb:32: Use RbConfig instead of obsolete and deprecated Config.
=> Booting WEBrick
=> Rails 3.0.5 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
configuration /config.ru not found
Exiting
config.ru 文件肯定在那里。当我尝试使用命令行手动执行该应用程序时,我可以运行该应用程序,但由于某种原因,我可以守护程序 rails app 。
我将不胜感激任何帮助,因为我整天都在努力解决这个问题。
干杯
【问题讨论】:
-
一些简单的尝试 - 将 Rails 更新到最新版本和/或使用瘦而不是 WEBrick(我想我以前在 Mac 上看到过 WEBrick 的错误)。即使他们不解决这个问题,你也会领先...
-
@BradWerth 感谢您的帮助,我只是尝试使用 sudo bundle exec ./bin/admin run -- s thin -p 80 来做瘦,但是我得到了完全相同的错误,找不到配置 /config.ru –
-
更新导轨?我有 3.0.5 它没那么旧,你不觉得做这样的事情有风险吗?我的意思是我担心其他宝石会特别打破新版本使用资产,这是一大步。如果您不介意,让我问您,它在您的机器上工作吗?我的意思是,如果你和我做同样的事情,它会和你一起工作吗?
-
实际上,3.0.5 已经很老了,就其背后的版本而言。 FWIW,我的生产应用程序都没有运行甚至落后一个版本。我觉得不更新是有风险的。这些版本包含许多与安全性相关的修复程序,并且可能还有一个可以解决您的问题。如果您谈论的是开发人员风险,它应该像启动验收测试(或手动检查整个应用程序)一样简单。可能不会有太多改变......
标签: ruby-on-rails ruby-on-rails-3 deployment daemon