0

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

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

4

1 回答 1

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
于 2013-03-01T04:20:17.413 回答