Трудно сказать, что на самом деле здесь происходит, но у меня есть подозрение, что я хотел бы, чтобы вы выяснили, пожалуйста.
Убедитесь, что вы устанавливаете соединение Mongo в конфигурации POST-daemonize, вместо этогоPRE-daemonize config.DaemonKit разветвляется после инициализации PRE и монго-соединения в этот момент времени.Это относится к любому вводу-выводу любого вида, после разветвления их необходимо заново открыть.
Та же логика верна для ActiveRecord в демонизированном проекте.Если бы это был ActiveRecord, вы могли бы сделать что-то вроде этого:
config/pre-daemonize/database.rb
ActiveRecord::Base.establish_connection(:foo => 'bar')
config/post-daemonize/database.rb
ActiveRecord::Base.verify_active_connections!
Я не пользователь mongomapper, поэтому я не знаю, как перевести приведенный выше пример.
Мой лучший советзаключается в том, чтобы «пропинговать» монго на этапе PRE-daemonization и выдавать ошибку в случае сбоя, чтобы демон даже не запускался, и правильно настроить соединение в конфигурации после демона.