у меня есть 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
Я не могу найти cn
или netlink
модуль ядра на любом из моих серверов CentOS. Но у меня есть и другие сервера, которые нормально работают:
$ 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 <elff@bravenet.com>
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 <elff@bravenet.com>
Я немного покопался и вижу, как возникает исключение, когда Бог пытается загрузить обработчик событий Netlink:
no such file to load -- netlink_handler_ext
Что может отличаться между моими серверами? Я что-то упустил?
netlink_handler_ext - это собственное расширение Ruby, которое является частью Бога. Похоже, что Бог не может загрузить это собственное расширение либо потому, что оно никогда не было скомпилировано и гем не был установлен правильно, либо он не был добавлен в его путь загрузки.
Используйте "gem env" для проверки среды вашего гема, вы сможете найти, где установлен гем, и вручную проверить, присутствует ли собственное расширение на нем.