一个上帝用不同的红宝石与rvm

时间:2012-08-22 21:33:11

标签: ruby rvm god

我的机器上有两个应用程序。
每个应用程序(服务器)都有自己的gemset,并且可以使用不同的ruby版本。

我会用上帝管理那些安装在它自己的宝石集中的应用程序。

我的上帝配置文件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"

它有效。

1 个答案:

答案 0 :(得分:1)

尝试:

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