守护进程自动终止

问题描述:

最近我运行了一个下面的命令来启动守护进程,它在三天内运行一次。 RAILS_ENV =生产lib /守护进程/ mailer_ctl开始,这是工作,但当我一周后回来,发现进程被杀害。守护进程自动终止

这是正常与否?

在此先感谢。

没有。据我了解,这个守护进程应该运行到杀死它。这个想法是为了以常规的方式工作,对吧?所以守护进程应该醒来,完成它的工作,然后回去睡觉,直到需要。所以如果它被杀死了,那是不正常的。

问题是为什么它会死亡,你能做些什么。第一个问题是调试分离进程时最难回答的问题之一。除非您的守护进程在日志中留下了一些线索,否则您可能无法确定何时以及为何终止。如果你仔细看看你的日志(如果你幸运的话),可能会有一些线索 - 当你怀疑它最后一次运行时,我会开始正确的,并且看看你的Rails production.log,任何守护进程的日志文件创建,但也在系统日志。

让我们假设你永远无法弄清楚这个守护进程发生了什么。对此做些什么成为一个有趣的问题。第一步是:尽可能多地记录日志,而不要使日志太笨重或影响性能。在最低限度的日志唤醒,处理和完成事件中,以及捕获信号并记录它们。最好登录到Rails production.log以外的地方。您可能还希望以比3天更短的时间间隔运行守护进程,直到确定它稳定。

使用像monit(http://mmonit.com/monit/)或god(http://god.rubyforge.org/)这样的进程监视工具进行研究。这些工具可以“监视”守护进程的状态,如果它们没有运行,可以自动启动它们。你仍然需要弄清楚为什么他们被杀害,但至少你有一些安全网。

+0

感谢您的指示。我浏览了日志文件。 – a5his 2010-10-27 10:55:36