У меня есть машинный цикл обработки событий, который подстраивает некоторые файлы журнала nginx и помещает их в MongoDB. Сценарии "log eater" работают с демонами ruby. http://daemons.rubyforge.org/
Я обнаружил, что это намного надежнее Бога. Это также контролирует и перезапускает ваш скрипт, если он умирает. Если вам нужно уведомление о смерти бегуна, вы можете использовать monit для этого.
Вот мой скрипт бегуна для демонов:
#!/usr/bin/env ruby
require 'rubygems'
require 'bundler'
Bundler.require(:default)
Bundler.setup(:default)
options = {
:app_name => "log_eater",
:dir_mode => :system,
:multiple => true,
:backtrace => true,
:monitor => true
}
Daemons.run(File.join(File.dirname(__FILE__), 'log_eater.rb'), options)
Это работает уже много месяцев без утечек или проблем. У Бога были проблемы с утечками и умиранием. Capistrano может перезапустить это, перезапустив скрипт запуска.
Вот отрывок из моего для gentoo linux
start() {
ebegin "Starting log-eater"
cd /ruby/STABLE/quickanalytics
`scripts/log_eater_runner.rb start -- /usr/logs/nginx.log`
eend $? "Failed to start log-eater"
}
- после команды start для любых аргументов, которые вы хотите передать в свой скрипт.