hrishikeshp19
hrishikeshp19

Reputation: 9036

node js listen EADDRINUSE error for simple httpserver

I have simple node js http server.

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}).listen(8888);

If I run

node basicserver.js 

I get

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:642:11)
    at Array.0 (net.js:743:26)
    at EventEmitter._tickCallback (node.js:192:40)

I have seen this post, but that post seems to be specific to TCP server and not http server. Could anyone please help.

Upvotes: 11

Views: 23712

Answers (7)

Anthony
Anthony

Reputation: 1581

For Windows users: in Powershell, you can use:

Stop-Process -Name "ProcessName" -Force

In this case "ProcessName" would be "node".

More info here: How to kill a process in windows

Upvotes: 0

Pablo C. García
Pablo C. García

Reputation: 22404

To kill all the experiments on my machine...

 killall node

Upvotes: 6

Anush
Anush

Reputation: 191

The port you are listening to is already being listened by another process.

When I faced to this error I killed the process using Windows PowerShell (because I used Windows)

  1. open the windows powershell
  2. type ps and then you can get list of processes
  3. find the process named node, and note the Id
  4. type Stop-process <Id>

I think that it is help for windows users.

Upvotes: 3

FreeStyler
FreeStyler

Reputation: 317

On my Linux Mint only kill by PID work for me:

netstat -nltp | grep 8080 - shows PID of using 8080 port, my output:

tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 27599/node - PID of node dev server is 27599 in my case

and then kill:

kill -9 <PID>

kill -9 27599

Preamble:

Don't know what a bug, but I am start my WebPack dev server like npm run dev:

webpack-dev-server --hot --host int.loc --port 8080

And when interrupt him - in terminal by Ctrl+C and start it again - he causing same error Error: listen EADDRINUSE 127.0.0.1:8080, but all time before it work perfect.

killall node not helped.

Upvotes: 1

probie
probie

Reputation: 89

I also ran into this issue with EADDRINUSE 127.0.0.1. After checking for Node processes I changed the server ip to 'localhost'. After doing this it started right up. Hope this helps.

Upvotes: 0

Farid Nouri Neshat
Farid Nouri Neshat

Reputation: 30430

The port you are listening to is already being listened by another process. In this case I got a feeling that it is your self. You can do a ps aux | grep node and then using kill <pid> kill your node process. Beside that you can also try another port.

--Update--

In case if you want to find which process is listening, you can use netstat -lpn ( -l is to find out the listening ports, -p is to include the process name and pid, -n is to not to resolve host names, or else it will be slow), to find the processes that are listening on different ports. If there was too many, you can do netstat -lnp | grep :8888.

Also can use, fuser 8888/tcp, which will show you the process pid and also adding -k will kill the process, fastest way ever.

I realized this two commands only work in linux.

Upvotes: 27

3k-
3k-

Reputation: 2563

Same problem may occur when you try to run the server, but you don't have root privileges.

Upvotes: 2

Related Questions