簡體   English   中英

NodeJS和Forever(監視和重新啟動應用程序)

[英]NodeJS and Forever (monitoring and restarting app)

我正在嘗試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();

可以很好地啟動我的應用程序,但是當我在文件中進行更改時,它不會重新啟動。 有什么我缺少的選擇嗎?

編輯:深入研究問題后,我發現實際上已檢測到文件更改,只是該過程沒有重新啟動。 我正在查看〜317行-Monitor.prototype.kill(在monitor.js中),但一切看起來都應該正常工作。

編輯:我設法解決了這個問題。 這是庫代碼中的錯誤。 在這里檢查: https : //github.com/nodejitsu/forever-monitor/issues/27

nodemon和永遠永遠是持續運行的痛苦。 我會先嘗試使用Shell腳本。 如果您使用的是Linux,只需將MonitorNode文件放在/etc/cron.d中

*/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

nodemonnodemon軟件包以完成整個“文件更改時重新加載”的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM