我正在使用 upstart 启动一个守护进程来运行 node.js(使用 express 和 connect-redis)http 和 https 服务器(在同一个节点 .js 文件中)
http://kevin.vanzonneveld.net/techblog/article/run_nodejs_as_a_service_on_ubuntu_karmic/
启动时一切正常,所有应用程序功能似乎都按预期工作,但始终如一地,在不同的持续时间后(有时在几个小时后,有时在一天后),守护进程被杀死,我拥有的唯一日志在
守护进程日志:
myserver init: myupstartscript 主进程 (3410) 被 ABRT 信号杀死
在我的节点 js 文件中,我放置了:
process.on('uncaughtException',...);
process.on('SIGABRT', .... );
process.on('ABRT',...);
没有一个捕捉到事件。
我不知道如何模拟事件。当我尝试使用
kill -SIGABRT [the pid]
kill -ABRT [the pid]
我的 process.on('SIGABRT',..) 抓住了那些。
我注意到的其他事情:
- 如果我在没有 https 服务器的情况下运行服务,则永远不会发生崩溃。
- 根据我的其他日志,崩溃不是由用户触发的事件引起的
- 我依赖的其他应用程序特定服务(redis-server、mongod)似乎都与事件无关,它们继续照常服务。
- 我已将 upstart 脚本设置为在崩溃时重新生成,并且确实如此。
关于我如何追踪它的任何帮助?
我的设置:Linux iLV1 2.6.35.4-rscloud #8 SMP Mon Sep 20 15:54:33 UTC 2010 x86_64 GNU/Linux node v0.5.11-pre
谢谢。