1

私のマシンには2つのアプリがあります。
各アプリ (サーバー) には独自の gemset があり、異なる Ruby バージョンで動作します。

これらのアプリは、独自の gemset にインストールされている神で管理します。

私の神の設定ファイルconfig.godは次のようになります。

God.watch do |w|
  current_path = "/home/vagrant/server-1"
  w.name = "server 1"
  w.start = "ruby #{current_path}/simple-server.rb"
  w.keepalive
end

God.watch do |w|
  current_path = "/home/vagrant/server-2"
  w.name = "server 2"
  w.start = "ruby #{current_path}/simple-server.rb"
  w.keepalive
end

私のサーバーは単にルビバージョンをファイルに書き込んでいます ( /home/vagrant/server-2/simple-server.rb):

require "date"

loop do
  # simple console output
  puts "Hello on #{RUBY_VERSION}, #{RUBY_PATCHLEVEL}, #{RUBY_PLATFORM}, #{RUBY_RELEASE_DATE}"

  # Specify the name of the log file
  log_file = File.join File.expand_path( File.dirname(__FILE__) ), "testfile.txt"

    # Write the log into the file
    File.open( log_file, 'a') do |f|
        date = DateTime.now
        date = date.strftime("%H:%M:%S")

        f.puts "#{date} on #{RUBY_VERSION}, #{RUBY_PATCHLEVEL}, #{RUBY_PLATFORM}, #{RUBY_RELEASE_DATE}"
    end

  sleep 2
end

で神を走らせgod -c config.godます。

問題は、アプリが .rvmrc で指定されている Ruby バージョンで実行されていないことです。

私も試しました:

  • ~/.rvm/bin/wrapped_god -d config.god -D
  • rvmsudo ~/.rvm/bin/wrapped_god -d config.god -D
  • rvmsudo god -d config.god -D

この場合の解決策はありますか?

編集2012.08.27:

私は神の設定を次のように変更しました:

w.start="~/.rvm/bin/rvm in #{current_path} do ruby simple-server.rb"

そしてそれはうまくいきました。

4

1 に答える 1

1

試す:

start="~/.rvm/bin/rvm in #{current_path} do ruby simple-server.rb"
于 2012-08-22T22:52:43.363 に答える