Подтвердить что ты не робот

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

На экземпляре Amazon EC2 со свободным ядром я создал простое приложение node.js Hello World, работающее на экспресс.

Если я запустил npm start, мое приложение работает нормально, и я могу ударить его из своего браузера, и я вижу следующий вывод:

> [email protected] start /home/ec2-user/app
> node ./bin/www

Я установил инструмент forever во всем мире. Когда я запускаю 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/app.js

Однако, когда я проверяю forever list, я вижу, что процесс остановлен:

info:    Forever processes running
data:        uid  command             script forever pid  id logfile                          uptime  
data:    [0] 2v0J /usr/local/bin/node app.js 2455    2457    /home/ec2-user/.forever/2v0J.log STOPPED 

Это единственное сообщение в журнале: error: Forever detected script was killed by signal: null

Я не могу найти другую информацию журнала. Почему он немедленно останавливается?

EDIT: я попытался запустить его как nohup forever start app.js и получил ту же проблему. Я запускаю forever start и forever list в одном сеансе ssh один за другим. Процесс приложения, похоже, немедленно прекращается.

4b9b3361

Ответ 1

Я смог решить свою проблему благодаря этому ответу по аналогичному вопросу: fooobar.com/questions/412901/...

Процесс продолжал работать, когда я использовал forever start ./bin/www вместо передачи app.js

Остается неясным, не приведет ли это к какой-либо проблеме по дороге.

Ответ 2

Я предполагаю, что процесс останавливается после отключения от ssh?

Сначала попробуйте запустить с nohup.

nohup forever start app.js

При отключении от ssh сервер убивает все ваши дочерние процессы оболочки. nohup отключает процесс из его родительской оболочки.

Ответ 3

Для меня мне пришлось использовать "sudo forever", чтобы он работал.