[node.js] forever

最近一直在赶关于 node.js 的文章。因为想整理和分享一下之前构建 Side Effect Studio 网站 时使用的一些东西,所以关于 node.js 的文章接连不断地上传了。得赶紧整理完,看看别的东西了。呵。

去年我曾经发布过一篇名为 使用 Upstart 和 Monit 服务 node.js 应用 的文章,虽然这相当有用,但在管理层面却相当麻烦。制作 Upstart 脚本、应用 Monit 规则等工作稍微有点繁琐。因为当时不知道别的替代方案,所以一直使用 Upstart 和 Monit,但那篇文章之后,出现了一个能够管理 node 应用实例的工具,名为 forever

forever 可以使用 npm 通过 npm install forever 命令轻松安装,它是一个通过非常简单的命令来执行用 node.js 编写的应用程序,并在意外终止时重新运行,或者将 stdout 保存为日志文件进行管理的工具。 试用后发现,虽然存在一些 bug,但与现有的 Upstart 和 Monit 组合相比,可用性太方便了,所以 node.js 应用的管理全都换成了 forever。

usage: forever [start | stop | stopall | list | cleanlogs] [options] SCRIPT [script options]

options:
start          start SCRIPT as a daemon
stop           stop the daemon SCRIPT
stopall        stop all running forever scripts
list           list all running forever scripts
cleanlogs      [CAREFUL] Deletes all historical forever log files


forever 的使用方法如上所述。 将想要注册的脚本使用 forever start app.js 这样的方式执行即可。 观察进程可以发现,有一个关于 forever 的独立进程,如果执行的 app.js 进程死掉,它会自动重新执行。要查看当前正在运行的脚本,请执行 forever list

注册 node 应用到 forever 的界面


终止进程时,可以使用前面显示的编号,使用 forever stop 编号 即可。 一眼就能掌握当前正在使用什么进程,并且会自动连接 log 文件,使用起来非常方便。

终止已注册 node 应用的界面




根据我稍微试用过的一些经验,感觉它相当稳定。(因为没有多少访问者,发生致命错误的可能性很小,所以这并不准确,纯粹是心理作用.. ㅡㅡ;;)相反,可能存在一些 bug,虽然用 forever start 注册了应用,进程也正常启动了,但有时没有注册到 forever 中,导致列表中没有显示。虽然测试了很多次,但没能找到任何规律。这种情况下,必须强制终止该脚本及其对应的 forever 进程,然后重新注册。除了这一点之外,管理和使用都非常方便,真的很好。


参考资料 : http://blog.outsider.ne.kr/590

AD