EventMachine中的Linux环境变量运行循环

时间:2013-02-10 18:52:58

标签: ruby rubygems eventmachine

我有一个简单的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打印任何内容。

如何确保我的守护程序可以看到环境变量?

1 个答案:

答案 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
相关问题