【发布时间】:2012-05-18 08:22:01
【问题描述】:
我有一个侦听端口的简单 TCP 服务器。
var net = require("net");
var server = net.createServer(function(socket) {
socket.end("Hello!\n");
});
server.listen(7777);
我用node server.js 启动它,然后在Mac 上用Ctrl + Z 关闭它。当我尝试使用 node server.js 再次运行它时,我收到以下错误消息:
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)
我是否以错误的方式关闭程序?我怎样才能防止这种情况发生?
【问题讨论】:
-
可能值得在 *NIX 上添加 Ctrl-Z suspends 一个命令,并且不会关闭它。如果您在 Ctrl-Z 之后键入
fg,您将回到上次中断的地方。因此,您之前的节点仍在运行。请注意您是否也在为其他命令执行此操作! -
@ruffin 这应该是一个答案。如果您已经完成了
Ctrl+Z操作,那么正确的方法可能是fg来恢复进程,然后Ctrl+C来正确终止它。