Eleeist Eleeist - 2 months ago 10
Node.js Question

Stop node.js program from command line

I have a simple TCP server that listens on a port.

var net = require("net");

var server = net.createServer(function(socket) {
socket.end("Hello!\n");
});

server.listen(7777);


I start it with
node server.js
and then close it with Ctrl + Z on Mac. When I try to run it again with
node server.js
I get this error message:

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


Am I closing the program the wrong way? How can I prevent this from happening?

Answer

To end the program, you should be using Ctrl + C. If you do that, it sends SIGINT, which allows the program to end gracefully, unbinding from any ports it is listening on.

See also: http://superuser.com/a/262948/48624

Comments