所以我在可靠地启动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。