2014-01-15 79 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 
相關問題