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

Что запускает мое приложение просто отлично, но оно не перезапускает его, когда я вношу изменения в файл. Есть ли какой-то вариант, который мне не хватает?

EDIT: После перекопа в проблему я обнаружил, что на самом деле обнаружено изменение файла, просто он не перезапускается. Я смотрю на строку ~ 317 - Monitor.prototype.kill(в monitor.js), но все выглядит так, как будто она должна работать.

EDIT: Мне удалось решить проблему. Это ошибка в коде библиотеки. Отметьте здесь: https://github.com/nodejitsu/forever-monitor/issues/27

Ответ 1

nodemon и навсегда - это боль, чтобы бегать последовательно. Сначала я попробую использовать оболочку script. Если вы используете linux, просто поместите файл monitornode в /etc/cron.d

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

и script на вашем компьютере

Попробуйте, если вы начинаете, создайте файл /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

Ответ 2

Откажитесь от пакета nodemon, чтобы выполнить всю операцию "перезагрузить файл".