Nodejs 'forever' просто ничего не делает

Я пытаюсь запустить приложение nodejs на экземпляре Amazon EC2, используя навсегда. Я установил nodejs npm, а затем запустил sudo npm install forever -g.
Установка не привела к каким-либо ошибкам, поэтому я продолжаю и запускаю свое приложение с помощью forever start server.js, но ничего не будет делать - ничего не выводит, даже если даже ошибка.
Я также пробовал forever --help и просто forever, но ни один из них не дал мне никакого ответа...

При регулярном запуске моего приложения с помощью nodejs - nodejs init.js он работает так, как ожидалось, но мне нужно запустить его с помощью forever, чтобы он не отключился при отключении от сервера.

Изменить:
Поскольку единственная проблема, с которой я столкнулся, заключалась в том, что nodejs закрывался, когда я закрыл сеанс терминала на моем сервере EC2, я решил это с помощью команды linux nohup, как это:
nohup sudo nodejs server.js &
Это продолжало работать nodejs в дочернем процессе даже после того, как я закрыл окно терминала.

Спасибо за помощь!:)

Ответ 1

Я также не получал никакого ввода stdout от любой команды forever, и это исправление прибило его:

sudo ln -s /usr/bin/nodejs /usr/local/bin/node

Надеюсь, что это поможет кому-то.

Ответ 2

Я не знаю, поможет ли это, но в качестве альтернативы вы можете использовать upstart. Создайте script следующим образом:

#this is the upstart service task. move it to /etc/init/nodeapp.conf

description "server for Node App"
author "Neels Grobler"

chdir /root/servers/nodeapp
exec node init.js 1>stdout.log 2>stderr.log
respawn

И запустите его, набрав start nodeapp. Остановить тип stop nodeapp. Вы также можете изменить script, чтобы приложение node запускалось при загрузке системы и т.д. Дополнительная информация на upstart.ubuntu.com

Ответ 3

Вы должны использовать forever start server.js не только forever server.js

Ответ 4

В окнах, когда вы бежите вечно, как:

forever start app.js

вы можете найти сгенерированный файл журнала в файловой системе по адресу:

C:\Users\USERNAME\.forever\SomeLogFileHere.txt

Файлы журналов восстанавливаются для каждого запуска script с уникальным идентификатором каждого файла. Вы всегда можете проверить, какой файл принадлежит к какому процессу:

forever list

Ответ 5

Несколько догадок.

  • Если вы устанавливаете с помощью sudo npm install forever -g, вам может понадобиться sudo для выполнения навсегда.
  • Поместите полный путь server.js, когда вы запускаете вечно, например forever start /home/you/source/server.js или sudo forever start /home/you/source/server.js