it-swarm-pt.tech

como liberar localhost de erro: listen EADDRINUSE

eu estou testando um servidor escrito em nodejs no windows 7 e quando eu tento executar o testador na linha de comando recebo o seguinte erro

Error: listen EADDRINUSE
at errnoException (net.js:614:11)
at Array.0 (net.js:704:26)
at EventEmitter._tickCallback (node.js:192:40)

como posso corrigi-lo sem reiniciar?

103
adam

Significa que o endereço para o qual você está tentando ligar o servidor está em uso. Tente outra porta ou feche o programa usando essa porta.

91
fent

Corre:

ps -ax | grep node

Você terá algo como:

60778 ??         0:00.62 /usr/local/bin/node abc.js

Então faça:

kill -9 60778
153
Komposr

O comando a seguir fornecerá uma lista de processos de nós em execução. 

ps | grep node

Para liberar essa porta, pare o processo usando o seguinte.

kill <processId>
35
wcurtis

No Linux (derivados do Ubuntu, pelo menos)

killall node

é mais fácil que esta forma.

ps | grep <something>
kill <somepid>

Nem vai funcionar se você tiver um filho órfão segurando a porta. Em vez disso, faça isso:

netstat -punta | grep <port>

Se a porta estiver sendo mantida, você verá algo parecido com isto:

tcp           0      0.0.0.0:<port>          0.0.0.*       LISTEN     <pid>/<parent>

Agora mate por pid:

kill -9 <pid>
34
WolfReporter

Você está recebendo o erro EADDRINUSE porque a porta, que seu aplicativo deseja usar, está ocupada por outro processo. Para liberar essa porta, você precisa encerrar o processo de ocupação.

Como você está em Windows, você pode finalizar o processo usando o comando Prompt (cmd). Com o cmd você pode descobrir o ID do processo (PID) do aplicativo de bloqueio. Você precisará do PID para finalizar/eliminar o processo.

Aqui está um guia passo-a-passo ...

  1. Encontre todos os processos que estão sendo executados em uma porta especificada (neste exemplo, Port é "3000"):

    netstat -ano | encontrar ": 3000"

  2. O comando netstat listará todos os processos em execução na porta especificada. Na última coluna dos resultados netstat você pode ver o PIDs (neste exemplo, o PID é "8308"). Você pode descobrir mais sobre uma PID específica executando o seguinte comando:

    lista de tarefas/fi "pid eq 8308"

  3. Se você quiser finalizar um processo, você pode fazer isso com o seguinte comando usando sua PID (neste exemplo, o PID é "8308"):

    taskkill/pid 8308/f

Screenshot

enter image description here

21
Benny Neugebauer

Quando você receber um erro Erro: ouça EADDRINUSE,

Tente executar os seguintes comandos do Shell:

netstat -a -o | grep 8080
taskkill /F /PID 6204

Eu greped para 8080, porque eu sei que meu servidor está rodando na porta 8080. (static me diz quando eu inicio: 'servindo "." Em http://127.0.0.1:8080 '.) Você pode ter para procurar uma porta diferente.

19
swathy valluri

suponha que seu servidor esteja sendo executado em port 3000 

lsof -i tcp:3000
    COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    node    11716 arun   11u  IPv6 159175      0t0  TCP *:3000 (LISTEN)

depois disso use kill -9 <pid>

no caso acima Sudo kill -9 11716

14
Arun Kasyakar

use abaixo o comando para matar um processo em execução em uma determinada porta - 3000 neste exemplo abaixo 

kill -9 $(lsof -t -i:3000)
8
Atta Ur Rahman

Uma solução possível que funcionou para mim foi simplesmente fechar a janela no navegador onde eu tinha o script " http: // localhost: 3000/ " correspondente em execução.

7
iloo

Quando você recebe um erro

Erro: ouça EADDRINUSE

Abra o prompt de comando e digite as seguintes instruções:

netstat -a -o | grep 8080
taskkill /F /PID** <*ur Process ID no*>

depois disso reinicie interface de lacuna de telefone.

Se você quiser saber qual ID do processo está sendo usada para o phonegap, abra o TASK MANAGER e observe o cabeçalho da colunaPIDe localize o PID no.

6
Eshan Chattaraj

O nó killall -9 mencionado anteriormente, sugerido por Patrick, funciona como esperado e resolve o problema, mas você pode querer ler a parte da edição desta mesma resposta sobre por que kill -9 pode não ser a melhor maneira de fazê-lo.

Além disso, você pode querer segmentar um único processo, em vez de matar cegamente todos os processos ativos.

Nesse caso, primeiro obtenha o ID do processo (PID) do processo em execução nessa porta (por exemplo, 8888):

lsof -i tcp:8888

Isso retornará algo como:

COMMAND   PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node     57385   You   11u  IPv6 0xac745b2749fd2be3      0t0  TCP *:ddi-tcp-1

(LISTEN) Então apenas faça (ps - na verdade não. Por favor, continue lendo abaixo):

kill -9 57385
4
Hemant Raghuwanshi

você pode alterar sua porta em app.js ou no arquivo de configuração do projeto ur. 

padrão ('porta', 80)

e para ver se a porta 80 já está em uso, você pode fazer 

netstat -antp | grep 80

netstat -antp | grep node

talvez você queira ver se o processo do nó já está em execução ou não. 

ps -ef | grep node

e se você encontrar o seu já em execução, você pode matá-lo usando

nó killall

2
Adeel Ahmad

Eu criei 2 servidores, ouvindo na mesma porta 8081, rodando a partir do mesmo código, enquanto aprendia

O primeiro shud de criação do servidor funcionou Falha na criação do segundo servidor com o EADDRINUSE

atrasos de retorno de chamada do node.js podem ser motivo por trás nem funcionou, ou a criação do segundo servidor teve exceção e o programa foi encerrado, portanto, o primeiro servidor também está fechado

2 dica questão do servidor, eu tenho de: Como corrigir o erro: ouvir EADDRINUSE ao usar o nodejs?

1
Manohar Reddy Poreddy

Verifique o ID do processo

Sudo lsof -i: 8081

De matar o processo particular

Sudo matar -9 2925

 enter image description here

1
Surender Kumar

Isso funciona no Mac:

Passo 1. 

Sudo lsof -i tcp:3000 (or whatever port you want to kill)

O comando acima fornecerá os IDs do processo que estão atualmente mantendo a porta.

Passo 2. 

Kill -9 <pid>
1
saran3h

Erro: ouça EADDRINUSE para resolvê-lo no Ubuntu executado no terminal netstat -nptl e após este kill -9 {process-number} este comando é para matar o processo do nó e agora você pode tentar executar novamente o comando node server.js

Ex 

ouça EADDRINUSE ::: 8080

netstat -nptl 

tcp6 0 0 ::: 9000 ::: * ESCUTE 9660/Java
tcp6 0 0 ::: 5800 ::: * OUÇA -
tcp6 0 0 ::: 5900 ::: * LISTEN -
tcp6 0 0 ::: 8080 ::: * OUÇA 10401/nó
tcp6 0 0 ::: 20080 ::: * ESCUTE 9660/Java
tcp6 0 0 ::: 80 ::: * LISTEN -
tcp6 0 0 ::: 22 ::: * LISTEN -
tcp6 0 0 ::: 10137 ::: * ESCUTE 9660/Java 

matar -9 10401

1
navnit kapadiya

simplesmente mata o nó como pkill -9 node no terminal do Ubuntu do que o nó inicial 

0
Aditya Prakash

ps -ef | grep node localize app.js, kill pid of app.js

0
megan5

Para matar o servidor do nó, execute primeiro este comando no seu terminal: 

  1. topname__
  2. abra outra janela e copie o servidor idda janela anterior: PID number -9 kill então agora você matou seu servidor de nó tente novamente para executar seu aplicativo.
0
Mohammed Dwina

No meu caso, a reinicialização da máquina resolveu o problema.

0
Balram Singh

Para quem já tentou todas as opções acima, mas ainda não consegue encontrar o processo de rouge, tente-os novamente, mas certifique-se de incluir "Sudo" na frente dos comandos.

0
MMMTroy

Eu tenho nó vermelho instalado no meu Mac e meu Raspberry Pi. Tive o mesmo problema e fazer 'killall' não ajudou. Uma vez que eu desliguei o Raspberry Pi e reiniciei o meu computador, funcionou bem. 

0
alkopop79

Pode ser possível que você tenha tentado executar o comando npm start em duas abas diferentes. Você não pode executar o NPM Start quando ele já estiver sendo executado em alguma aba. Verifique uma vez.

0
Bhudke Aakshayy

Se você gostar mais da interface do usuário, encontre o processo Node.js no gerenciador de tarefas do Windows e elimine-o.

0
PolinaC