1

我的机器上有两个应用程序。
每个应用程序(服务器)都有自己的 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

我的服务器只是将 ruby​​ 版本写入文件(/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 回答