node.js - NodeJS 和 Forever(监控和重启应用程序)

标签 node.js monitor forever

我正在尝试设置 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

最佳答案

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

关于node.js - NodeJS 和 Forever(监控和重启应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15639828/

相关文章:

node.js - Forever:安装两个 Node 版本后,指定要运行的 Node 版本

node.js - 清理.forever登录nodejs

javascript - Html5 Canvas "Composite Layers"导致长帧

javascript - 快车3.0升级

node.js - 使用 nodejs 具有音频录制功能的视频和音频混合器

redis - 试图理解 REDIS Monitor 命令

java - 监控和锁定说明

containers - 如何监控kubernetes中的所有容器状态?

javascript - 永远在后台运行peerjs服务器

javascript - Node.js Promise 在没有被调用的情况下运行