上帝的问题

时间:2013-05-12 19:08:58

标签: ruby macos ruby-1.9.3 god

所以我在可靠地启动god时遇到了问题。在一切成功之前,我可能需要多次重启。

OSX 10.6.8
Ruby 1.9.3-p236
god 0.13.2

我有一个配置文件,我指定监控两个进程,如下所示:

bindir = "/Users/me/foobar"
basedir = "/Users/me/foobar"

God::Contacts::Email.defaults do |d|
  d.from_email = 'god@example.copm'
  d.from_name = 'God'
  d.delivery_method = :sendmail
end

God.contact(:email) do |c|
  c.name = 'me'
  c.group = 'foobar'
  c.to_email = 'me@example.com'
end

God.watch do |w|
  w.name = "foo"
  w.group = "foobar"
  w.dir = basedir
  w.log = "logs/foo.log"
  w.start = "ruby #{bindir}/foo.rb"
  w.keepalive

  w.transition(:up, :start) do |on|
    on.condition(:process_exits) do |c|
      c.notify = 'me'
    end
  end
end

God.watch do |w|
  w.name = "bar"
  w.group = "foobar"
  w.dir = basedir
  w.log = "logs/bar.log"
  w.start = "ruby #{bindir}/bar.rb"
  w.keepalive

  w.transition(:up, :start) do |on|
    on.condition(:process_exits) do |c|
      c.notify = 'me'
    end
  end
end

如果我用-D开始上帝,所以我在控制台中看到它总是正常工作,我的流程开始了。

god -c foobar.god -D

一切都好。然后我也可以运行这样的东西:

god status
god stop foobar
god start foobar
god terminate foobar

一切正常。

现在,如果我在没有-D选项的情况下开始,它(a)可以正常工作,(b)上帝开始进程但不是(或死),或(c)根本没有开始。

我一直在寻找某种日志条目但未能找到任何表明存在故障的内容。正如我已经描述的那样,它确实有效。不是每次都是。

我看到的另一个问题(我现在不知道它是否与某种方式有关)是当上帝和我的进程都运行正常(没有-D)时,它是大部分的时间无法成功发送命令。即

之类的东西
god stop foobar

不会终止,只会导致很多点

god terminate foobar
..............................................

同时我可以在顶部看到上帝开始占用大量CPU。

我必须点击ctrl-c然后使用-9终止上帝进程,然后手动清理受监视的进程。

我还没有在网上找到任何与我所描述的相近的东西。我非常想知道发生了什么。任何人都可以帮忙,或者你有什么建议我可以试试吗?

提前致谢!

更新:

杀死神进程导致此堆栈跟踪:

/Users/me/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/drb/drb.rb:570:in `load'
/Users/me/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/drb/drb.rb:632:in `recv_reply'
/Users/me/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/drb/drb.rb:918:in `recv_reply'
/Users/me/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/drb/drb.rb:1197:in `send_message'
/Users/me/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/drb/drb.rb:1088:in `block (2 levels) in method_missing'
/Users/me/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/drb/drb.rb:1172:in `open'
/Users/me/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/drb/drb.rb:1087:in `block in method_missing'
/Users/me/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/drb/drb.rb:1105:in `with_friend'
/Users/me/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/drb/drb.rb:1086:in `method_missing'
/Users/me/.rvm/gems/ruby-1.9.3-head/gems/god-0.13.2/lib/god/cli/command.rb:183:in `terminate_command'
/Users/me/.rvm/gems/ruby-1.9.3-head/gems/god-0.13.2/lib/god/cli/command.rb:30:in `dispatch'
/Users/me/.rvm/gems/ruby-1.9.3-head/gems/god-0.13.2/lib/god/cli/command.rb:10:in `initialize'
/Users/me/.rvm/gems/ruby-1.9.3-head/gems/god-0.13.2/bin/god:121:in `new'
/Users/me/.rvm/gems/ruby-1.9.3-head/gems/god-0.13.2/bin/god:121:in `'
/Users/me/.rvm/gems/ruby-1.9.3-head/bin/god:19:in `load'
/Users/me/.rvm/gems/ruby-1.9.3-head/bin/god:19:in `'
/Users/me/.rvm/gems/ruby-1.9.3-head/bin/ruby_noexec_wrapper:14:in `eval'
/Users/me/.rvm/gems/ruby-1.9.3-head/bin/ruby_noexec_wrapper:14:in `'

在Ruby中搜索联机抓取this bug

0 个答案:

没有答案