1

Railsプロジェクトでデーモンgemを使用して、Monitで簡単に監視できるようにしたいのですが、このgemを使用すると、PIDを作成したり、startやstopなどのコマンドを使用したりできます。

とにかく、どういうわけかレールでは使用できないようです。ファイルを作成して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アプリをデーモン化できます。

私はこれを解決するために一日中過ごしたので、助けていただければ幸いです。

乾杯

4

2 に答える 2

2

daemonsアプリケーションのルートディレクトリでサーバーが実行されていないことが原因である可能性がありますか?

アップデート

ルートアプリディレクトリ以外のパスからRailsサーバーを起動するには、ファイルへの正確なパスが必要なコマンドの-cオプションを使用します。rails serverconfig.ru

于 2012-11-09T07:42:27.357 に答える
0

これでデーモンの問題が直接解決されないことはわかっていますが、Linux を使用している場合は、start-stop-daemon を使用して基本的に同じことを行うことができます。また、そのためのスクリプトは必要ありません。プロセスをデーモン化するために start-stop-daemon を使用する monit 構成の 1 つのライナーだけです。

于 2012-11-09T02:48:17.113 に答える