come rilasciare localhost da Error: ascolta EADDRINUSE

sto testando un server scritto in nodejs su Windows 7 e quando provo ad eseguire il tester nella riga di comando ottengo il seguente errore

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

come posso risolverlo senza riavviare?

Significa che l’indirizzo che stai cercando di associare al server è in uso. Prova un’altra porta o chiudi il programma usando quella porta.

Correre:

 ps -ax | grep node 

Otterrai qualcosa come:

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

Quindi fa:

 kill -9 60778 

Il seguente comando ti fornirà un elenco di processi del nodo in esecuzione.

 ps | grep node 

Per liberare quella porta, interrompere il processo usando quanto segue.

 kill  

Su Linux (almeno derivati ​​di Ubuntu)

 killall node 

è più facile di questa forma.

 ps | grep  kill  

Né funzionerà se hai un figlio orfano che tiene il porto. Invece, fai questo:

 netstat -punta | grep  

Se la porta viene trattenuta, vedrai qualcosa di simile a questo:

 tcp 0 0.0.0.0: 0.0.0.* LISTEN / 

Ora uccidi per pid:

 kill -9  

Quando si verifica un errore Errore: ascolta EADDRINUSE,

Prova a eseguire i seguenti comandi della shell:

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

Ho fatto il grep per 8080, perché so che il mio server è in esecuzione sulla porta 8080. ( static mi dice quando lo avvio: ‘serving “.” A http://127.0.0.1:8080 ‘.) Potrebbe essere necessario cercare una porta diversa.

supponiamo che il tuo server sia in esecuzione sulla 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) 

dopodiché usa kill -9

nel caso precedente sudo kill -9 11716

Si sta ricevendo l’errore EADDRINUSE perché la porta, che l’applicazione vuole utilizzare, è occupata da un altro processo. Per rilasciare questa porta, è necessario interrompere il processo di occupazione.

Dato che sei su Windows , puoi terminare il processo usando il prompt dei comandi ( cmd ). Con cmd puoi scoprire l’ID di processo (PID) dell’applicazione di blocco. Avrai bisogno del PID per terminare / uccidere il processo.

Ecco una guida passo-passo …

  1. Trova tutti i processi in esecuzione su una porta specificata (in questo esempio, Port è “3000”):

    netstat -ano | trova “: 3000”

  2. Il comando netstat elencherà tutti i processi in esecuzione sulla porta specificata. Nell’ultima colonna dei risultati di netstat puoi vedere i PID (in questo esempio, PID è “8308”). Puoi scoprire di più su un PID specifico eseguendo il seguente comando:

    tasklist / fi “pid eq 8308”

  3. Se vuoi terminare un processo, puoi farlo con il seguente comando usando il suo PID (in questo esempio, PID è “8308”):

    taskkill / pid 8308 / f

Immagine dello schermo

inserisci la descrizione dell'immagine qui

Una ansible soluzione che ha funzionato per me era semplicemente quella di chiudere la finestra nel browser in cui avevo lo script corrispondente ” http: // localhost: 3000 / ” in esecuzione.

Quando ricevi un errore

Errore: ascolta EADDRINUSE

Aprire il prompt dei comandi e digitare le seguenti istruzioni:

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

dopo di che riavviare l’interfaccia gap telefonico.

Se vuoi sapere qual è l’ID processo utilizzato da phonegap, apri TASK MANAGER e guarda il PID dell’intestazione della colonna e trova il numero PID.

usa sotto il comando per uccidere un processo in esecuzione su una determinata porta – 3000 in questo esempio qui sotto

 kill -9 $(lsof -t -i:3000) 

puoi cambiare la tua porta in app.js o nel tuo file di configurazione del progetto.

default (‘port’, 80)

e per vedere se la porta 80 è già in uso che puoi fare

netstat -antp | grep 80

nodo netstat -antp | grep

potresti voler vedere se il processo del nodo è già in esecuzione o meno.

nodo ps -ef | grep

e se la trovi già in esecuzione, puoi ucciderla usando

killall node

Ho creato 2 server, ascoltando sulla stessa porta 8081, eseguendo dallo stesso codice, mentre imparavo

Il primo shud di creazione del server ha funzionato. La creazione del secondo server non è riuscita con EADDRINUSE

i ritardi di callback di node.js potrebbero essere la ragione che non ha funzionato, o la creazione del secondo server ha avuto un’eccezione e il programma è stato chiuso, quindi anche il primo server è chiuso

2 suggerimento sul problema del server, ho ottenuto da: Come risolvere l’errore: ascoltare EADDRINUSE durante l’utilizzo di nodejs?

Errore: ascoltare EADDRINUSE per risolverlo in Ubuntu eseguire in terminal netstat -nptl e dopo questo kill -9 {process-number} questo comando è quello di eliminare il processo del nodo e ora puoi provare a eseguire nuovamente il comando node server.js

Ex

ascolta EADDRINUSE ::: 8080

netstat -nptl

tcp6 0 0 ::: 9000 ::: * ASCOLTA 9660 / java
tcp6 0 0 ::: 5800 ::: * ASCOLTA –
tcp6 0 0 ::: 5900 ::: * ASCOLTA –
tcp6 0 0 ::: 8080 ::: * ASCOLTA 10401 / nodo
tcp6 0 0 ::: 20080 ::: * ASCOLTA 9660 / java
tcp6 0 0 ::: 80 ::: * ASCOLTA –
tcp6 0 0 ::: 22 ::: * ASCOLTA –
tcp6 0 0 ::: 10137 ::: * ASCOLTA 9660 / java

kill -9 10401

Ho il nodo rosso installato sul mio Mac e sul mio Raspberry Pi. Aveva lo stesso identico problema e fare ‘killall’ non ha aiutato. Una volta spento il Raspberry Pi e riavviato il mio computer ha funzionato bene.

Potrebbe essere ansible che tu abbia provato a eseguire il comando di avvio di npm in due diverse tabs. Non puoi eseguire npm start quando è già in esecuzione in alcuni tab.check una sola volta.

A chiunque abbia provato tutto quanto sopra, ma ancora non riesca a trovare il processo rouge, provali tutti di nuovo ma assicurati di includere “sudo” davanti ai comandi.

Se ti piace di più l’interfaccia utente, trova il processo Node.js nel task manager di Windows e uccidilo.

ps -ef | nodo grep find app.js, kill pid di app.js

semplicemente uccidi il nodo come nodo pkill -9 nel terminale di ubantu rispetto al nodo iniziale

Nella finestra, esegui questo comando:

 taskkill /F /PID 1952