NodeJS和Forever(监视和重新启动应用程序)

我试图forever安装和NodeJS监视和重新启动我的应用程序,并保持运行时退出。 目前我有这个:

 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(); 

哪些启动我的应用程序就好,但它不会重新启动它时,我在文件中进行更改。 有一些select,我错过了吗?

编辑:深入挖掘问题后,我发现实际上检测到文件更改,只是该进程不重新启动。 我正在看线〜317 – Monitor.prototype.kill(在monitor.js),但一切看起来应该工作。

编辑:我设法解决这个问题。 这是图书馆代码中的一个错误。 点击这里: https : //github.com/nodejitsu/forever-monitor/issues/27

       

网上收集的解决方案 "NodeJS和Forever(监视和重新启动应用程序)"

nodemon和forever永远是一个痛苦的运行。 我会尝试首先使用shell脚本。 如果你在Linux上,只需要在/etc/cron.d中放置一个monitornode文件

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

并在你的机器上有一个脚本

试试这个,如果你正在开始,创build一个文件/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 

检查出nodemon软件包来完成整个“重新加载文件”的事情。