2017-07-27 23 views
0

私はDigital OceanでホストされていたNodejsプロジェクトを取得しており、永遠のスクリプトを使用して実行しています。しかし、サイトをダウンさせる一定の期間が経過すると、何らかのエラーが発生することに気付きました。なお、以下、一度だけ起こったが、すでに何回かいない永遠のログです:永遠のスクリプトを使用したNodejsはいつかアクセスできません

Error: Connection lost: The server closed the connection. 
    at Protocol.end (/var/www/menu/node_modules/mysql/lib/protocol/Protocol.js:109:13) 
    at Socket.<anonymous> (/var/www/menu/node_modules/mysql/lib/Connection.js:109:28) 
    at emitNone (events.js:72:20) 
    at Socket.emit (events.js:166:7) 
    at endReadableNT (_stream_readable.js:905:12) 
    at nextTickCallbackWith2Args (node.js:441:9) 
    at process._tickCallback (node.js:355:17) 
error: Forever detected script exited with code: 1 
error: Script restart attempt #178 
Listening on xxx.xxx.xxx.xxx, server_port 80 
events.js:141 
     throw er; // Unhandled 'error' event 

Error: connect ECONNREFUSED 127.0.0.1:3306 
    at Object.exports._errnoException (util.js:870:11) 
    at exports._exceptionWithHostPort (util.js:893:20) 
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1063:14) 
    -------------------- 
    at Protocol._enqueue (/var/www/menu/node_modules/mysql/lib/protocol/Protocol.js:141:48) 
    at Protocol.handshake (/var/www/menu/node_modules/mysql/lib/protocol/Protocol.js:52:41) 
    at Connection.connect (/var/www/menu/node_modules/mysql/lib/Connection.js:130:18) 
    at Connection._implyConnect (/var/www/menu/node_modules/mysql/lib/Connection.js:461:10) 
    at Connection.query (/var/www/menu/node_modules/mysql/lib/Connection.js:206:8) 
    at Object.<anonymous> (/var/www/menu/config/db.js:14:12) 
    at Module._compile (module.js:410:26) 
    at Object.Module._extensions..js (module.js:417:10) 
    at Module.load (module.js:344:32) 
    at Function.Module._load (module.js:301:12) 
error: Forever detected script exited with code: 1 

をなぜこれが起こっているログは、エラーの原因となった行に述べていなかった、と永遠に持っていたようにそれはそうと、私はわからないんだけどスクリプトを再起動しようとしましたが失敗しました。しかし、いったん私のサーバーにSSHを入れてからもう一度起動すると、すでにうまく動作しています。誰でも手伝うことができますか?ありがとう。

答えて

0
Error: connect ECONNREFUSED 127.0.0.1:3306 

このエラーは、ポートが使用中であることを意味しています。次のコマンドを使用すると、そのポートで実行中のプロセスを強制終了できます。

sudo kill $(sudo lsof -t -i:3306) 

その後、あなたのように永遠にサーバーを再配置できます。

+0

あなたの問題を解決するために、このstackoverflowの質問を参照してください。しかし、このエラーは永遠の合計178回の再起動後に起きたばかりなので、このスクリプトができない原因となることを主な理由ではありませんしてください右再起動するには? – Ping

+0

なぜなら永遠に再起動できないのは、タイムアウトのためにmysqlによって接続が切断されているためです。プロセスが再接続しようとしたときに、すでに実行されています –

+0

つまり、サーバー設定に問題があります。永遠のログをチェックしてエラーを調べることをお勧めします。 "forever logs"を実行してログファイルを一覧表示し、その後に "forever logs(number)"を入力します。ここでnumberはログファイルの番号です。 –

関連する問題