Error: listen EADDRINUSE: address already in use:::3000 at Server.setupListenHandle[as listen 2]エラー解決方法
4559 ワード
1.問題が発生
ケース
nodeの実行
node<ファイル名>
ターミナルウィンドウに入力すると、次のエラーが発生します.
node:events:368
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::3000
at Server.setupListenHandle [as _listen2] (node:net:1319:16)
at listenInCluster (node:net:1367:12)
at Server.listen (node:net:1454:7)
at Object.<anonymous> (/Users/dy/Downloads/node.js-mysql-1/main.js:151:5)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
at node:internal/main/run_main_module:17:47
Emitted 'error' event on Server instance at:
at emitErrorNT (node:net:1346:8)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
code: 'EADDRINUSE',
errno: -48,
syscall: 'listen',
address: '::',
port: 3000
}
2.原因の特定
エラーの内容は、ノードが3000ポートで実行されていることです.
でもctrl+cで途切れたのに…?
エラーを繰り返し、グーグルゲームを続けます.
次は私が作ったことがありますが、やったことがありません.△文章を読んでいる人は、次のリストの中の1つになるかもしれませんので、試してみてください.
最も簡単で、最も解決しにくい誤り.
同じように解決できない.
$ ps -ef | grep app.js
// ubuntu 7755<pid 값> 7025 0 08:10 pts/0 00:00:00 node app.js
$ kill -9 7755 <pid 값>
$ sudo lsof -i 3000:
//위 명령어를 치면 > 어쩌구 pid 값 어쩌구~~가 나온다.
$ sudo kill -9 <pid 값>
3.トラブルシューティング
理由:pm 2はバックグラウンドで3000ポートで稼働している
ノートパソコンを再起動してから、ノードがバックグラウンドで動作しているかどうかを疑い始めます.
そうですね.ctrl+cで終了したpm 2は正常に動作していると考えられる.ノードにpm 2をインストールして実行しましたが、エラーが発生するとは思いませんでした...
Googleでpm 2を閉じる方法を説明しました.
pm2 kill
入力するとpm 2は本当に閉じます.以下のターミナルビルの写真を添付します.
では、なぜpm 2は終了せずに稼働しているのでしょうか.
この機会にpm 2をまとめてみましょう!(やっぱり間違いはプレゼント…?)
4. pm2
PM 2ホームページで定義されているPM 2
PM2 is a daemon process manager that will help you manage and keep your application online. Getting started with PM2 is straightforward, it is offered as a simple and intuitive CLI, installable via NPM.
PM 2はNodeです。jsアプリケーションのProcess Managerを簡単に管理できます。Node.jsアプリケーションがクラスタモードで実行されたり、メモリがオーバーフローしたり、エラーによってプロセスが終了したりする場合、各状況はユーザーが処理する可能性がありますが、これは複雑すぎて注意すべきことが多くなります。
PM 2を使用すると、簡単な設定でこれらの問題を簡単に解決できます.
見えない場所で分子を選んだ鬼は、幽霊から霊感を得た.
家ではテレビのような製品は電源を切ってから開くことができますが、冷蔵庫(デーモンプロセス)のような製品はずっと働いているのではないでしょうか.
そのため、
Disk And Execution MONitor
で自分の意味を表現することもあります.すなわち、Linuxでは、daemonはサービスリクエストに応答するために長期にわたって実行されるバックグラウンドプロセスである.「d」で終わるプロセスが最も代表的である.ex) udisksd, gvfsd, systemd, logind, cron
参考文献
pm 2のブログの詳細(https://armadillo-dev.github.io/javascript/nodejs/node-js-pm2/)
デーモンプロセスの理解(https://velog.io/@jewon119/01.%EB%A6%AC%EB%88%85%EC%8A%A4-%EA%B8%B0%EC%B4%88-%ED%95%AD%EC%83%81-%EC%8B%A4%ED%96%89daemon)
デーモンプロセスの説明
( https://velog.io/@zoo81001/Linux-Daemon )
Reference
この問題について(Error: listen EADDRINUSE: address already in use:::3000 at Server.setupListenHandle[as listen 2]エラー解決方法), 我々は、より多くの情報をここで見つけました https://velog.io/@allzeroyou/CatchError1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol