процесс демона убит автоматически - PullRequest
0 голосов
/ 21 октября 2010

Недавно я запустил команду ниже, чтобы запустить процесс демона, который запускается один раз в три дня.RAILS_ENV = запуск lib / daemons / mailer_ctl производства, который работал, но когда я вернулся через неделю и обнаружил, что процесс был убит.

Это нормально или нет?

Заранее спасибо.

1 Ответ

0 голосов
/ 21 октября 2010

Неа. Насколько я понимаю, этот демон должен работать до тех пор, пока вы не убьете его. Идея в том, чтобы он работал с постоянными интервалами, верно? Таким образом, демон должен проснуться, выполнить свою работу, а затем снова заснуть, пока не понадобится. Так что если его убили, это ненормально.

Вопрос в том, почему он был убит и что вы можете с этим поделать. Первый вопрос - один из самых сложных при отладке отдельных процессов. Если ваш демон не оставит некоторые подсказки в журналах, у вас могут возникнуть проблемы с выяснением того, когда и почему он прекратился. Если вы просматриваете свои журналы (и, если вам повезет), могут быть некоторые подсказки - я начну прямо в то время, когда вы подозреваете, что он в последний раз запускался, и посмотрите на ваш Rails production.log, любой файл журнала, который может демон создать, но и в системных журналах.

Давайте на минутку предположим, что вы никогда не сможете понять, что случилось с этим демоном. Что с этим делать, становится интересным вопросом. Первый шаг: регистрируйте как можно больше, не делая журналы слишком громоздкими и не влияющими на производительность. При минимальном журнале событий пробуждения, обработки и завершения, а также отслеживания сигналов и их регистрации. Лучше всего войти куда-нибудь, кроме Rails production.log. Вы также можете запускать демон с более коротким интервалом, чем 3 дня, пока не убедитесь, что он стабилен.

Изучите использование инструмента мониторинга процессов, такого как monit (http://mmonit.com/monit/) или god (http://god.rubyforge.org/).). Эти инструменты могут «следить» за состоянием демонов и, если они не запущены, могут автоматически запускать их. Вам все еще нужно выяснить, почему их убивают, но, по крайней мере, у вас есть какая-то сеть безопасности.

...