【问题标题】:NodeJS and Forever (monitoring and restarting app)NodeJS 和 Forever(监控和重启应用)
【发布时间】:2013-03-16 09:52:11
【问题描述】:

我正在尝试设置 foreverNodeJS 来监控和重新启动我的应用程序,并在退出时保持它运行。目前我有这个:

var forever = require("forever-monitor");

var child = new(forever.Monitor)('main.js', {
    'silent': false,
    'pidFile': '../pids/app.pid',
    'sourceDir': '.',
    'watch': true,
    'watchDirectory': '.',
    'watchIgnoreDotFiles': null,
    'watchIgnorePatterns': null,
    'logFile': '../logs/forever.log',
    'outFile': '../logs/forever.out',
    'errFile': '../logs/forever.err'
});

child.start();

这可以很好地启动我的应用程序,但是当我在文件中进行更改时它不会重新启动它。有什么我缺少的选项吗?

编辑: 深入问题后发现实际上检测到文件更改,只是进程没有重新启动。 我正在查看 ~317 行 - Monitor.prototype.kill(在 monitor.js 中),但一切看起来应该可以工作。

编辑: 我设法解决了这个问题。这是库代码中的一个错误。在这里查看:https://github.com/nodejitsu/forever-monitor/issues/27

【问题讨论】:

  • 请注意,需要 Forever 的人可能关心稳定性和容错性,这通常意味着不运行 Windows 机器来提供 Web 应用程序。可能会解释为什么您在这里或 github 问题上没有看到很多回复。
  • 我不会采用操作系统拖钓的方式。无论如何,我并没有说我正在使用 Windows XP 进行生产。我只是说我正在使用它。 NodeJS 作为“使用 Linux”的标准答案的多操作系统有什么意义?
  • 这更像是玩世不恭而不是拖钓。您必须知道这些开发人员没有投入大量宝贵时间在 Windows 7 上进行测试(更不用说 Windows XP)了。我刚刚完成了一个打算在 Windows 上运行的 nodejs 应用程序,因为这是我的客户端将要使用的,并且在这些节点包中修复 Windows 问题的进度要慢得多。无论如何,人们在生产网络应用程序中使用 Forever。如果您使用闭源操作系统在生产环境中运行您的网络应用程序,您可能做错了。当然可能有例外,但 node 是一个明显的 unixy 东西。
  • @StevenLu “无论如何,人们在生产网络应用程序中使用 Forever。”您能否详细说明和/或引用来源?你真的认为 Forever 已经足够成熟,可以在生产环境中使用了吗?
  • 我认为想出例子并不难:here, here... 很抱歉听起来自以为是。我只是认为 MS 的闭源堆栈的总体稳定性和价值是缺乏的。因此,如果您关心正常运行时间等问题,我敦促您,特别是如果您想使用节点,切换到 Linux。

标签: node.js monitor forever


【解决方案1】:

查看nodemon 包以完成整个“文件更改时重新加载”的事情。

【讨论】:

  • 已经看到了,但它不会让您以编程方式控制它。 :(
【解决方案2】:

nodemon 和 forever 很难持续运行。我会先尝试使用 shell 脚本。如果你在 linux 上,只需在 /etc/cron.d 中放置一个 monitornode 文件

*/1 * * * * root  /var/www/nodejs/monitornode.sh

并且在你的机器上的某个地方有一个脚本

如果你开始尝试这个,创建一个文件 /var/www/nodejs/monitornode.sh 和 chmod +x :

#!/bin/sh

TT_NODE="node /var/www/nodejs/node.js"

# NODEJS Watcher
if [ -z `pgrep -f -x "$TT_NODE"` ] 
then
    echo "Starting $TT_NODE."
    cmdNODE="$TT_NODE >> /var/www/logs/node.log &"
    eval $cmdNODE
fi

【讨论】:

    猜你喜欢
    • 2014-05-25
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 2014-09-15
    • 2012-02-15
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    相关资源
    最近更新 更多