永远运行node.js脚本

时间:2014-12-18 12:54:34

标签: javascript node.js websocket socket.io forever

我正在永远地运行一个节点脚本,我很好奇它是多么可靠,如果脚本仍在运行,我是否应该构建一些其他类型的检查。我使用这个命令:

forever start server.js

服务器用作我的websocket服务器,即使抛出通常会停止脚本的错误,也必须运行。我已经做了一些测试,但它似乎有效,但是听到那些使用这种组合一段时间的人在生产环境中确实有多可靠,这将会很棒。

3 个答案:

答案 0 :(得分:2)

是的,它是可靠的但是如果你的脚本包含一些可以停止脚本的错误,这意味着它将在每次停止节点时启动。这可以填写日志到它的程度,你很快就会失去记忆。最好在进入生产之前彻底测试,以便将其他应用程序保存在同一台服务器上。

但是你不必担心每次都保持节点。

同时检查nodemon,它会在节点发生变化时自动重启节点。

答案 1 :(得分:1)

我在生产环境中永远奔跑并亲自爱上它。我使用节点服务器使用ImageMagick处理图像。偶尔我会收到ENOMEM错误(内存不足)和Node崩溃。 (我猜这是我的脚本中的内存泄漏我还没有被追踪)当发生这种情况时,Forever会在几秒钟内完成服务器的备份。我让浏览器向用户返回一条消息,要求他们再试一次 - 他们这样做并且处理得很好。我发现其他随机错误也是如此,主要是在开发过程中,Forever也抓住了这些错误并重新启动了Node服务器。我无法回想起Node崩溃的时间,服务器从未重启过,所以它应该做到了。

另外,如果您执行console.log(),它会输出到永久日志,您的Node脚本就会很棒。我会经常对此进行检查以检查服务器上发生的情况,或者甚至不时地回顾日志以查看其执行情况。如果/当Forever重新启动服务器时,它会在那里告诉你。

祝你好运!

答案 2 :(得分:0)

我曾经永远使用,但我切换到了PM2。它更好,并提供实时监控和日志访问。看看:PM2