Как перезапустить узел.сервер JS
Я установил и запустил.JS сервер на osx. Я запустил модуль чата и с удовольствием запускаю его. Я изменил некоторые части и нужно перезагрузить сервер, чтобы увидеть эффект.
Я знаю только, как перезапустить, закрыв окно терминала, а затем снова открыть его, а затем запустить узел chatdemo.опять Джей.
любой способ перезапуска без закрытия терминала?
спасибо.
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