Como reiniciar um nó.servidor js

instalei e está a correr um nó.servidor js no osx. Pesquisei um módulo de chat e estou feliz em executá-lo. Alterei algumas peças e preciso reiniciar o servidor para ver os efeitos.

só sei reiniciar fechando a janela do terminal e depois reabrindo-a e depois executando o nó chatdemo.js outra vez.

Há alguma maneira de reiniciar sem fechar o terminal?

Obrigado.

Author: jsnoob, 2010-07-21

8 answers

Se estiver apenas a correr (não um servidor), então basta usar Ctrl-C.

Se for daemonizado, podes tentar.
$ 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

Em que PID é substituído pelo número na saída de ps.

 74
Author: rfunduk, 2010-07-21 19:26:26

Durante o desenvolvimento, a melhor maneira de reiniciar o servidor para ver as alterações feitas é usar nodemon

MPN instalar nodemon-g

Nodemon[nome da aplicação]

O Nodemon irá ver os ficheiros no directório em que o nodemon foi iniciado, e se eles mudarem, irá reiniciar automaticamente a sua aplicação de nós.

Check nodemon git repo: https://github.com/remy/nodemon

 40
Author: Nikhil Vishnu, 2012-09-24 12:45:15

Neste caso, está a reiniciar o seu nó.servidor js muitas vezes porque está em desenvolvimento ativo e você está fazendo mudanças o tempo todo. Há um grande script {[[2]}hot reload que vai lidar com isso para você, observando todos os seus .ficheiros js e reiniciar o seu nó.servidor js se algum desses arquivos tiver mudado. Apenas o bilhete para o desenvolvimento rápido e teste.

O guião e a explicação sobre como usá-lo estão aqui em Draco Blue.

 16
Author: Paul Robinson, 2010-11-23 01:23:44

Eu tinha o mesmo problema e depois escrevi este script shell que mata todos os processos de nó existentes:

#!/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"

Depois disto é gravado como um programa de consola (xxx.sh) file você pode querer adicioná-lo ao seu caminho como Descrito aqui.

(por favor, note que isto irá matar todos os processos com " nó " no seu nome, excepto o próprio grep, por isso acho que, em alguns casos, também poderá matar alguns outros processos com um nome semelhante) {[[3]}

 11
Author: Crocodile, 2011-05-22 17:41:46
Entendo que o meu comentário se relacione com o windows, mas pode ser útil. Para ganhar executar em cmd:
wmic process  where "commandline like '%my_app.js%' AND name='node.exe' " CALL Terminate

Depois pode executar a sua aplicação de novo:

node my_app.js

Também o pode usar em lote, com aspas de escape:

wmic process  where "commandline like '%%my_app.js%%' AND name='node.exe' " CALL Terminate
node my_app.js
 3
Author: dimaqw, 2013-11-13 22:11:41

Usar " kill-9 [PID]" ou "killall-9 node" funcionou para mim onde "kill-2 [PID]" não funcionou.

 2
Author: Steven H, 2012-12-19 16:36:25

Se eu sou apenas executar o nó de aplicativo de console (não usando para sempre, etc) eu usar o control + C, não tenho certeza se OSX tem a mesma combinação de teclas para terminar, mas muito mais rápido do que encontrar o id do processo e matá-lo, você também pode adicionar o seguinte código para o bate-papo app que você estiver usando e, em seguida, digite 'exit' no console, sempre que você quiser fechar o aplicativo.

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

process.stdin.on('data', function(data) {
  if (data == 'exit\n') process.exit();
});
 2
Author: user511941, 2013-02-15 06:14:35
Dizer "notemon" responderia à pergunta.

Mas sobre como matar apenas o(s) nó (s) demónio (s), o seguinte funciona para mim:

pkill -HUP node
 2
Author: spaxxUnited, 2014-03-04 05:39:36