我有一个简单的ruby文件,它使用Eventmachine作为守护进程。它看起来像这样:
...
EM.run {
Signal.trap('INT') { @log.debug("trapped INT signal"); stop(true) }
Signal.trap('TERM') { @log.debug("trapped TERM signal"); stop(true) }
EM.add_periodic_timer 60 do
puts ENV['TEST_ENV']
end
}
...
运行之后,当echo $TEST_ENV
清楚地显示变量在流程开始之前定义时,我没有为TEST_ENV打印任何内容。
如何确保我的守护程序可以看到环境变量?
答案 0 :(得分:0)
我真的可以说,除非你没有展示的例子还有,对我有用:
petunia ~/t $ cat t.rb
#!/usr/bin/env ruby
require 'rubygems'
require 'eventmachine'
EM.run {
EM.add_periodic_timer(5) do
puts ENV['TEST_ENV']
end
}
petunia ~/t $ TEST_ENV=test ruby ./t.rb
test