2015-03-12 6 views
3

Я использую forever.js, чтобы убедиться, что приложение Node.js/Express работает без перерыва. Однако иногда он сбой и навсегда не перезапускает его.Forever.js не перезапускает мое приложение Node.js/Express

Я использую

forever start app.js

, чтобы запустить приложение

и он начинает нормально, работает, а потом в какой-то момент аварии и когда я

forever list

ничего не перечисляет, поэтому он просто не перезапускается ...

Я также попытался запустить его с помощью лог-файл, используя

forever start -l foreverlog.txt app.js

и файл журнала в порядке, но он не показывает информацию о конце процесса - например, отчет об ошибке или ошибке, который я обычно имею, если я запускаю app.js с моей консоли напрямую.

Вы знаете, как я мог навсегда перезапустить приложение или хотя бы получить ошибки в журнале?

Спасибо!

+1

Предоставляет ли 'forever logs app.js' какие-либо сведения? –

+0

на момент запуска приложения предоставляет детали приложения, но я буду тестировать его в следующий раз, когда сервер опустится –

+0

, когда приложение выйдет из строя (это произошло впервые с недели), 'forever logs app.js' говорит, что это не может найти процесс app.js, поэтому я предполагаю, что он не работает. –

ответ

3

навсегда раскалывает бревно

-l LOGFILE  Logs the forever output to LOGFILE 
-o OUTFILE  Logs stdout from child script to OUTFILE 
-e ERRFILE  Logs stderr from child script to ERRFILE 

Даже если вы не указали -e файл, он должен быть где-то. Пользователи/{UserName} /. Всегда на окнах.

Вы должны проверить ERRFILE. Возможно, это принесет некоторый свет, почему процесс не удался.

+0

Да, я нашел его, но там нет ошибок и ненормального поведения.Он просто останавливается при загрузке страницы с кодом 200, поэтому кажется нормальным. Я думаю: может быть, это не мое приложение, а весь узел. Является ли это возможным? Будет ли это означать, что навсегда не может перезапустить приложение по этой причине? –

+0

Я считаю, что вы проверяете неправильный файл журнала, строки 200OK записываются в -o (OUTFILE). Вы должны идентифицировать -e (ERRFILE) или указать его при следующем запуске. – adrianvlupu

+0

Спасибо! Это правда, я проверял неправильный файл. –

1

Вы должны использовать spinSleepTime:

forever --minUptime 1000 --spinSleepTime 1000 -w -l *.log -e *.log --port 1234 app.js 

не --minUptime установить. По умолчанию: 1000ms

--spinSleepTime не установлен. Ваш скрипт выйдет, если он не будет оставаться не менее 1000 мс.

+0

WORKS - это помогает перезагрузить авто. – YumYumYum

Смежные вопросы