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 と forever は、一貫して実行するのが面倒です。最初にシェルスクリプトを使用してみます。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
于 2013-05-10T20:39:57.803 に答える