Как запустить приложение node.js в качестве фоновой службы? - PullRequest
430 голосов
/ 25 октября 2010

С тех пор, как этот пост привлек много внимания на протяжении многих лет, я перечислил лучшие решения для каждой платформы в нижней части этого поста.


Оригинальный пост :

Я хочу, чтобы мой сервер node.js работал в фоновом режиме, то есть: когда я закрываю свой терминал, я хочу, чтобы мой сервер продолжал работать.Я гуглил это и придумал этот учебник , однако он не работает как задумано.Поэтому вместо того, чтобы использовать этот демон-сценарий, я подумал, что просто использовал перенаправление вывода (часть 2>&1 >> file), но это тоже не выходит - я получаю пустую строку в моем терминале, как будто он ожидает вывода / ошибок.

Я также пытался перевести процесс в фоновый режим, но как только я закрываю свой терминал, процесс также завершается.

Так как я могу оставить его работающим, когда я выключаю свойлокальный компьютер?


Лучшие решения :

Ответы [ 24 ]

1 голос
/ 20 февраля 2016

кто-нибудь заметил тривиальную ошибку позиции "2> & 1"?

2>&1 >> file

должно быть

>> file 2>&1
0 голосов
/ 19 апреля 2012

Этот ответ довольно поздно для вечеринки, но я обнаружил, что лучшим решением было написать сценарий оболочки, который использовал обе команды screen -dmS и nohup.

screen -dmS newScreenName nohup node myserver.js >> logfile.log

Я также добавляю бит >> logfile в конец, чтобы можно было легко сохранять операторы узла console.log().

Почему я использовал скрипт оболочки? Я также добавил оператор if, который проверял, запущен ли процесс node myserver.js.

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

0 голосов
/ 24 октября 2015

Я удивлен, что никто не упомянул Гувнор

Я пытался вечно, pm2 и т. Д. Но, когда речь заходит о надежном контроле и показателях производительности в Интернете, я обнаружил Guvnor , безусловно, лучший.Кроме того, он также полностью открыт.

enter image description here

Редактировать: Однако я не уверен, работает ли он на Windows.Я использовал его только в Linux.

0 голосов
/ 09 октября 2015

PM2 - менеджер производственных процессов для приложений Node.js со встроенным балансировщиком нагрузки. Это позволяет вам поддерживать приложения в актуальном состоянии, перезагружать их без простоев и облегчать общие задачи системного администратора. https://github.com/Unitech/pm2

...