我已经god
在至少十几台(或更多)服务器上安装了运行 CentOS 5.5 的 i386 和 x86_64 版本,运行良好。我刚刚设置了两台新的 CentOS 5.5 x86_64 服务器并安装了 God,但我收到了事件系统错误:
$ tail /var/log/god.log
E [2011-04-22 12:33:17] ERROR: Condition 'God::Conditions::ProcessExits'
requires an event system but none has been loaded
$ god check
using event system: none
[fail] event system did not load
$ uname -a
Linux server2.example.com 2.6.18-238.9.1.el5 #1 SMP Tue Apr 12 18:10:13 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
我在任何 CentOS 服务器上都找不到任何cn
内核模块。但我有其他运行良好的服务器:netlink
$ god check
using event system: netlink
starting event handler
forking off new process
forked process with pid = 17559
killing process
[ok] process exit event received
$ uname -a
Linux server1.example.com 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
所有服务器都运行 ruby v1.8.6-399:
# ruby -v
ruby 1.8.6 (2010-02-05 patchlevel 399) [x86_64-linux]
Ruby 来自 ELFF repo:
# rpm -qi ruby
Name : ruby Relocations: (not relocatable)
Version : 1.8.6.399 Vendor: Bravenet ELFF <[email protected]>
Release : 2.el5 Build Date: Fri Apr 16 18:53:48 2010
Install Date: Thu Mar 24 11:23:48 2011 Build Host: el-build.local
Group : Development/Languages Source RPM: ruby-1.8.6.399-2.el5.src.rpm
Size : 1738695 License: Ruby or GPLv2
Signature : DSA/SHA1, Fri Apr 16 19:07:49 2010, Key ID 551751dfe8b071d6
Packager : Bravenet ELFF <[email protected]>
我进行了一些挖掘,发现当 God 尝试加载 Netlink 事件处理程序时会引发异常:
no such file to load -- netlink_handler_ext
我的服务器之间可能有什么不同?我是否忽略了一些简单的事情?
答案1
netlink_handler_ext 是 Ruby 原生扩展,是 God 的一部分。God 似乎无法加载此原生扩展,因为它从未被编译过,gem 从未正确安装过,或者它没有被添加到加载路径中。
使用“gem env”检查您的 gem 环境,您应该能够找到 gem 的安装位置并手动检查是否存在本机扩展。