Esta é a minha primeira vez trabalhando com Node.js e me deparei com este problema:
Eu iniciei um servidor Node através do plug-in de um IDE. Infelizmente, não posso usar o terminal do IDE. Então, eu tentei executar o script na linha de comando.
Esse é o problema - estou usando o módulo Express e meu aplicativo está escutando alguma porta (8080). Quando inicio o aplicativo na linha de comando, ele lança este erro:
events.js:71
throw arguments[1]; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:770:11)
at HTTPServer.Server._listen2 (net.js:910:14)
at listen (net.js:937:10)
at HTTPServer.Server.listen (net.js:986:5)
at Object.<anonymous> (C:\xampp\htdocs\node\chat\app.js:5:5)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
Mesmo não tendo muita certeza de qual poderia ser esse erro, presumi que é porque o aplicativo está escutando uma porta que já está em uso. Então eu fiz:
netstat -an
eu consigo ver
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING
É porque o servidor Node já está iniciado quando tentei iniciá-lo a partir do IDE.
Então, eu quero saber como posso parar todas as instâncias do servidor? Além disso, se você puder me dizer como detectar o que está sendo executado em uma porta e matá-la.
Respostas:
Máquina Windows:
Precisa matar um servidor Node.js.e você não possui nenhum outro processo do Node em execução, pode dizer à sua máquina para matar todos os processos nomeados
node.exe
. Isso seria assim:E se os processos ainda persistirem, você pode forçar o encerramento dos processos adicionando o
/f
sinalizador:Se você precisar de um controle mais refinado e precisar matar apenas um servidor que esteja sendo executado em uma porta específica, poderá
netstat
encontrar o ID do processo e enviar um sinal de interrupção para ele. Portanto, no seu caso, onde está a porta8080
, você pode executar o seguinte:A quinta coluna da saída é o ID do processo:
Você pode então matar o processo com
taskkill /pid 14828
. Se o processo se recusar a sair, basta adicionar o/f
parâmetro (force) ao comando.Máquina Linux:
O processo é quase idêntico. Você pode matar todos os processos do Node em execução na máquina (use
-$SIGNAL
seSIGKILL
for insuficiente):Ou também
netstat
, usando , você pode encontrar o PID de um processo escutando em uma porta:O ID do processo, neste caso, é o número antes do nome do processo na sexta coluna, que você pode passar para o
kill
comando:Se o processo se recusar a sair, basta usar o
-9
sinalizador, que é umSIGTERM
e não pode ser ignorado:fonte
process.exit()
no seu aplicativo faz com que a instância do NodeJS seja fechada.killall node
no bash mataria todas as instâncias do NodeJS em execução na sua máquina.taskkill /IM node.exe
. Isso matará todos os processos nomeadosnode.exe
.O caminho mais rápido é
Funciona com Linux, OS X
fonte
node: no process found
Além disso, quando eu grep para processos de um nó que são executados na porta específica, o ID do processo possui em-
vez de um número em si.Você pode usar
lsof
o processo get que vinculou à porta necessária.Infelizmente, os sinalizadores parecem diferentes, dependendo do sistema, mas no Mac OS X você pode executar
Por exemplo, na minha máquina, recebo algo como:
O segundo número é o PID e a porta que eles estão ouvindo está à direita antes de "(OUVIR)". Encontre o PID desonesto e
kill -9 $PID
termine com extremo preconceito.fonte
Terminal Windows e GitBash Eu precisava usar esse comando dentro do terminal Windows / Webstorm / GitBash
fonte
se você deseja eliminar um processo de nó específico, pode ir para a rota da linha de comandos e digitar:
para obter uma lista de todos os IDs de processo do nó. agora você pode obter seu ID do processo (pid) e faça:
e se você deseja eliminar todos os processos do nó, faça:
A opção -9 é como a tarefa final no Windows. forçará o processo a terminar. você pode fazer:
para ver todas as opções do comando kill e seus comentários.
fonte
Você pode tentar isso:
fonte
Linux
Para impressionar seus amigos
Mas é esse que você vai se lembrar
fonte
Você também pode tentar:
killall nodejs
fonte
Se você estiver usando o Windows, siga este procedimento:
Abra o gerenciador de tarefas, procure este processo:
Em seguida, basta clicar com o botão direito e "Finalizar tarefa".
É isso, agora todos os comandos npm são executados desde o início.
fonte
Solução multiplataforma, estável e melhor:
use fkill para matar o processo que está levando sua porta:
Para instalar o fkill, use o comando: npm i -g fkill
fonte
podes tentar
você também pode tentar
fonte
funciona bem no windows 10
fonte
Estou usando o sistema operacional Windows.
Eu matei todo o processo do nó e reiniciei o aplicativo que funcionava.
experimentar
fonte
Use o seguinte comando para eliminar e reiniciar o servidor do nó a partir do arquivo em lotes
fonte
comando no windows Digite command blow:
taskkill / f / im node.exe
fonte
Pressione em cmd ou bash: Ctrl + C
fonte