2014-01-15 64 views
0

我正在OSX上运行陨石(有一个测试项目,所以错误不应该是由于我写的任何东西)当我在默认端口3000上运行时出现以下错误。我已经检查,并且没有其他进程正在访问该端口。流星(陨石)错误:监听端口3000上的EADDRINUSE,错误:在其他端口上连接ECONNREFUSED

event.js:72 throw er; \未处理 '错误' 事件 错误:在errnoExeception听EADDRINUSE :(net.js:901:11) 在Server._listen2(net.js:1039.14) 在听(net.js:1061:10) 在net.js:1135:9 at dns.js:72:18 at process._tickCallback(node.js:415:13) at Function.Module.runMain(module.js:499:11) at startup( Node.js的:119:16) 在node.js中:901:3

当我尝试运行捷运,我知道被占用,我得到正确的错误消息的端口上(不能在3001端口上监听) ,当我尝试在另一个未占用的端口上运行时,我得到: 错误:连接ECONNREFUSED

有什么建议吗?

进一步更新:

我只是做了一个完整的关机/重启,选择了一个新的端口号(3200),经检查发现没有什么是使用该端口或任何接近它,跑流星--port 3200我得到:

I20140115-14:02:29.623(-7)? ----------Wed Jan 15 2014 14:02:29 GMT-0700 (MST) SQL Driver Starting -------- 
W20140115-14:02:29.639(-7)? (STDERR) Error: connect ECONNREFUSED 
W20140115-14:02:29.639(-7)? (STDERR)  at errnoException (net.js:901:11) 
W20140115-14:02:29.640(-7)? (STDERR)  at Object.afterConnect [as oncomplete]  (net.js:892:19) 
W20140115-14:02:29.640(-7)? (STDERR)  -------------------- 
W20140115-14:02:29.641(-7)? (STDERR)  at Handshake.Sequence (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/mysql/lib/protocol/sequences/Sequence.js:15:20) 
W20140115-14:02:29.641(-7)? (STDERR)  at new Handshake (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/mysql/lib/protocol/sequences/Handshake.js:9:12) 
W20140115-14:02:29.641(-7)? (STDERR)  at Protocol.handshake (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/mysql/lib/protocol/Protocol.js:41:50) 
W20140115-14:02:29.642(-7)? (STDERR)  at PoolConnection.Connection.connect (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/mysql/lib/Connection.js:73:18) 
W20140115-14:02:29.642(-7)? (STDERR)  at Pool.getConnection (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/mysql/lib/Pool.js:43:23) 
W20140115-14:02:29.642(-7)? (STDERR)  at app/server/dbinit.js:13:6 
W20140115-14:02:29.642(-7)? (STDERR)  at app/server/dbinit.js:79:3 
W20140115-14:02:29.643(-7)? (STDERR)  at /Users/lfrey/Desktop/Thesis/test-meteor-sql/.meteor/local/build/programs/server/boot.js:155:10 
W20140115-14:02:29.643(-7)? (STDERR)  at Array.forEach (native) 
W20140115-14:02:29.643(-7)? (STDERR)  at Function._.each._.forEach (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/underscore/underscore.js:79:11) 

回答

0

首先,你应该meteor而不是mrt首发您的应用程序。该公约在几个版本之前发生了变化。

如果您之前运行的流星过程没有正确退出,当您尝试在同一个端口上启动另一个时,会出现EADDRINUSE错误。简单的解决方案就是重启。您还可以尝试查找过程并手动将其终止:运行ps aux | grep meteorkill PID,其中PID是进程ID(来自ps输出的第2列)。当然,也许你只是有一些其他不相关的进程使用该端口...但尝试上面的第一个。

如果您尝试在另一个端口上运行进程,例如meteor --port 4000应该工作,除非端口不可用。例如,在* NIX机器上,1024以下的端口需要提升权限才能使用。

+0

我已经尝试了所有这些:使用'流星'代替,杀死所有流星进程,重新启动,并使用另一个端口。当我尝试在另一个端口(3002,4000等)上运行时,我反而得到错误:连接ECONNREFUSED。 – user3175280

+0

你是否也杀死了所有节点进程?我认为流星使用节点作为一个流程不是流星本身 – Akshat

+0

@Akshat他说他重新启动了,所以除非他一开始就挂上另一个流程,我不认为这会是一个问题。 –

0

我与gulp有同样的问题...您需要找到端口的PSID,然后在PSID号码上运行 kill -9。之后你应该可以再次运行它。

sudo lsof -i :3200 
sudo kill -9 PSID 
相关问题