我的机器上有两个应用程序。
每个应用程序(服务器)都有自己的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"
它有效。
答案 0 :(得分:1)
尝试:
start="~/.rvm/bin/rvm in #{current_path} do ruby simple-server.rb"