最近一直在赶关于 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
。
终止进程时,可以使用前面显示的编号,使用
forever stop 编号
即可。
一眼就能掌握当前正在使用什么进程,并且会自动连接 log 文件,使用起来非常方便。
根据我稍微试用过的一些经验,感觉它相当稳定。(因为没有多少访问者,发生致命错误的可能性很小,所以这并不准确,纯粹是心理作用.. ㅡㅡ;;)相反,可能存在一些 bug,虽然用 forever start 注册了应用,进程也正常启动了,但有时没有注册到 forever 中,导致列表中没有显示。虽然测试了很多次,但没能找到任何规律。这种情况下,必须强制终止该脚本及其对应的 forever 进程,然后重新注册。除了这一点之外,管理和使用都非常方便,真的很好。