Как перезапустить узел.сервер JS



Я установил и запустил.JS сервер на osx. Я запустил модуль чата и с удовольствием запускаю его. Я изменил некоторые части и нужно перезагрузить сервер, чтобы увидеть эффект.



Я знаю только, как перезапустить, закрыв окно терминала, а затем снова открыть его, а затем запустить узел chatdemo.опять Джей.



любой способ перезапуска без закрытия терминала?



спасибо.

799   8  

8 ответов:

если он просто работает (не демон) , то просто используйте Ctrl-C.

если это демонизировано, то вы можете попробовать:

$ ps aux | grep node
you   PID  1.5  0.2  44172  8260 pts/2    S    15:25   0:00 node app.js
$ kill -2 PID

здесь PID заменяется на число в выводе ps.

во время разработки лучший способ перезапустить сервер для просмотра внесенных изменений-использовать nodemon

npm install nodemon-g

nodemon [имя приложения]

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

Регистрация nodemon git РЕПО: https://github.com/remy/nodemon

в этом случае вы перезапускаете свой узел.JS сервер часто, потому что он находится в активной разработке, и вы делаете изменения все время. Есть отличный горячий перезагрузка скрипт, который будет обрабатывать это для вас смотрите все .JS-файлов и перезагрузки узла.JS-сервер, если какой-либо из этих файлов изменился. Просто билет для быстрого развития и тестирования.

сценарий и объяснение о том, как его использовать, находятся здесь по адресу Драко Синий.

У меня была та же проблема, а затем написал этот сценарий оболочки, который убивает все существующие процессы узла:

#!/bin/bash
echo "The following node processes were found:"
ps aux | grep " node " | grep -v grep
nodepids=$(ps aux | grep " node " | grep -v grep | cut -c10-15)

echo "OK, so we will stop these process/es now..."

for nodepid in ${nodepids[@]}
do
echo "Stopping PID :"$nodepid
kill -9 $nodepid
done
echo "Done"

после этого сохраняется как сценарий оболочки (xxx.sh) файл, который вы можете добавить в свой путь, как описано здесь.

(обратите внимание, что это убьет все процессы с "узлом" в его имени, кроме собственного grep, поэтому я думаю, что в некоторых случаях он также может убить некоторые другие процессы с аналогичным именем)

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

wmic process  where "commandline like '%my_app.js%' AND name='node.exe' " CALL Terminate

затем вы можете снова запустить приложение:

node my_app.js

также вы можете использовать его в пакетном файле, с escape-кавычки:

wmic process  where "commandline like '%%my_app.js%%' AND name='node.exe' " CALL Terminate
node my_app.js

использование " kill -9 [PID] "или" killall -9 node "работало для меня, где" kill -2 [PID] " не работал.

Если я просто запускаю приложение node из консоли (не используя forever и т. д.), Я использую control + C, не уверен, что OSX имеет ту же комбинацию клавиш для завершения, но гораздо быстрее, чем найти идентификатор процесса и убить его, вы также можете добавить следующий код в приложение чата, которое вы используете, а затем введите "выход" в консоли всякий раз, когда вы хотите закрыть приложение.

process.stdin.resume();
process.stdin.setEncoding('utf8');

process.stdin.on('data', function(data) {
  if (data == 'exit\n') process.exit();
});

сказать "nodemon" будет отвечать на вопрос.

но о том, как только убить (всех) демонов узлов, для меня работает следующее:

pkill -HUP node

Comments

    Ничего не найдено.