神进程监控 – CentOS – 未find事件系统

我已经安装了至less十几个(或更多)运行CentOS 5.5的服务器,在i386和x86_64中都是完美的。 我只是安装了两个新的CentOS 5.5 x86_64服务器,并安装上帝,但我得到一个事件系统错误:

 $ 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服务器上都找不到任何cnnetlink内核模块。 但是我有其他服务器工作正常:

 $ 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回购:

 # 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]> 

我做了一点挖掘,可以看到上帝试图加载Netlink事件处理程序时引发的exception:

 no such file to load -- netlink_handler_ext 

我的服务器可能有什么不同? 我错过了一些简单的东西吗

netlink_handler_ext是上帝的一部分的ruby原生扩展。 看起来上帝无法加载这个本地扩展,因为它从来没有编译过,而且gem也没有正确安装,或者它没有被添加到它的加载path中。

使用“gem env”来检查你的gem环境,你应该能够findgem的安装位置,并手动检查本地扩展是否存在。