4

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

4

2 回答 2

2

nodemon 和永远是持续运行的痛苦。我会先尝试使用 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
于 2013-05-10T20:39:57.803 回答
0

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

于 2013-04-05T04:39:28.417 回答