Как автоматически перезапустить сервер node?

Мы завершаем разработку проекта, клиент уже использует его, но иногда возникают ошибки - сбой сервера.

Я знаю, что могу зарегистрировать службу как "upstart" script в linux, чтобы перезагрузить службу node при ее сбое.

Но на нашем сервере работает другой материал, поэтому мы не можем его перезапустить. На самом деле, во время написания, я понимаю, что у меня есть два вопроса:

  • Будет ли "выскочка" работать без перезагрузки? Что-то просто шепчет да мне:)
  • Если нет, какой другой вариант я должен был бы "вернуть" мой сервер node при его сбое?

Ответы

Ответ 1

Да, upstart перезапустит ваш процесс без перезагрузки.

Кроме того, вы должны изучить forever.

Ответ 2

PM2 является диспетчером производственных процессов для Node.js.

Ответ 3

Если ваш фокус для автоматического перезапуска - это всегда работающее приложение, я предлагаю использовать диспетчер процессов. В общем случае диспетчер процессов обрабатывает процесс node (если включен кластер) и отвечает за выполнение процесса /es. PM опирается на оперативную систему: ваше приложение node и ОС не так сильно связаны, потому что pm находится посередине.

Окончательный трюк: поставить диспетчера процессов на выскочку.

Здесь - полный путь улучшения производительности.

Ответ 4

вы также можете использовать nodemon.

npm install -g nodemon

nodemon будет смотреть файлы в каталоге, в котором запускался nodemon, и если они будут изменены, он автоматически перезапустит ваше приложение node.


Edit

sudo nodemon server.js