我无法使用守护进程gem运行我的Rails应用程序

我想在我的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应用程序。

我会感激任何帮助,因为我整天都在努力解决这个问题。

干杯

可能是因为daemons没有在应用程序根目录中运行服务器?

UPDATE

要从除根应用程序目录之外的其他路径启动Rails服务器,请使用rails server命令的-c选项,该命令需要config.ru文件的确切路径。

我知道这并没有直接解决你的守护进程问题,但如果你在linux上,你可以使用start-stop-daemon基本上做同样的事情。 而且你不需要一个脚本,只需要你的monit配置中的一个内核,它使用start-stop-daemon来守护进程。