Node.js и Forever завершились с кодом: 0

CentOs 6.5 с использованием учетной записи root, у меня есть работающее приложение Node.js Express:

root@vps [/home/test/node]# npm start app.js
> [email protected] start /home/test/node
> node ./bin/www app.js

Приложение можно увидеть работающим в интернет-браузере. Я останавливаю приложение и пытаюсь запустить его навсегда:

root@vps [/home/test/node]# forever start app.js
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: app.js
root@vps [/home/test/node]#

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

root@vps [/home/test/node]# forever list
info:    Forever processes running
data:        uid  command             script forever pid   id logfile                 uptime
data:    [0] OkGm /usr/local/bin/node app.js 32222   32227    /root/.forever/OkGm.log STOPPED
root@vps [/home/test/node]#

Если я проверю OkGm.log:

error: Forever detected script exited with code: 0

Почему приложение не работает, когда я запускаю его навсегда?


person user2879427    schedule 26.03.2015    source источник
comment
Причина выхода вашего приложения должна быть прямо перед строкой error: Forever detected script exited with code: 0 в ваших логах. Скорее всего ошибка EACCES или что-то подобное.   -  person t.niese    schedule 26.03.2015
comment
@t.niese В файле журнала больше ничего нет, только эта строка. Когда я пытаюсь запустить его снова, навсегда создается еще один файл журнала с другим именем с той же строкой.   -  person user2879427    schedule 26.03.2015
comment
Затем вы либо подавляете сообщение об ошибке блоком try-catch, либо блоком on('error', ...), не обрабатывая его таким образом, чтобы оно информировало вас о том, что экспресс-сервер (?) будет запущен. Или вы делаете проверку, если вы можете запустить его, который не удается, и вы не запускаете его из-за этого. Неважно, в чем причина, только вы можете узнать, почему. Я бы предложил добавить регистрацию в вашем приложении. Чтобы вы могли определить, какие шаги выполняются, а какие нет.   -  person t.niese    schedule 26.03.2015


Ответы (1)


Хорошо, я узнал, что происходит. Я пытался запустить:

forever start app.js

Когда это приложение Express должно быть запущено с помощью:

 forever start ./bin/www

В Интернете не было полезной информации при поиске этого по выходу журнала ошибок («выход с кодом: 0»), поэтому я надеюсь, что этот ответ поможет таким новичкам, как я, в том, что, как я думаю, может быть легкой ошибкой.

person user2879427    schedule 26.03.2015
comment
Эй, я думаю, что у меня такая же проблема, получаю ту же ошибку. Но я не вижу никаких журналов и получаю сообщение о том, что никакие службы не запущены, когда я пытаюсь forever list - person Lee; 06.07.2015
comment
Итак, как вы на самом деле запустили свой файл? это было похоже на ./bin/www/app.js ? - person Lee; 02.09.2015
comment
Это решение действительно спасает жизнь. Нет документации (по крайней мере, я не смог найти) о том, как применить forever к проекту nodejs, сгенерированному экспресс-генератором. - person Victor Wong; 16.06.2016
comment
ВАУ, еще один фаворит в моем браузере!! спасибо за помощь, теперь мое приложение запущено и работает. это было выдающимся! - person Pedro Emilio Borrego Rached; 04.12.2016