我想在我的铁路项目中使用守护程序宝石,这样我就可以轻松地使用Monit Monitore Monitore,该宝石将允许我创建PID并使用启动和停止等命令。
。无论如何,似乎我不能以某种方式将其与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
没有在应用程序root目录中运行服务器?
更新
要从另一个路径启动Rails Server,而不是root App目录,请使用-c
命令的CC_2选项,该选项需要config.ru
文件的确切路径。
我知道这不能直接解决您的守护程序的问题,但是如果您在Linux上可以使用Start-daemon来基本上做同样的事情。而且您不需要它的脚本,只有您的Monit Config中的一个衬里,它使用启动停车态度来谴责该过程。