Node.js address already in use

Volc·2022년 2월 10일
0

Error

목록 보기
1/64
💡 Port 번호가 이미 사용되고 있으므로 다른 port 번호를 사용하라는 에러가 발생하였다.

에러

server.js
events.js:352
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use :::8080
    at Server.setupListenHandle [as _listen2] (net.js:1320:16)
    at listenInCluster (net.js:1368:12)
    at Server.listen (net.js:1454:7)
    at Function.listen (/Users/lyk/Documents/GitHub/Support/node_modules/express/lib/application.js:618:24)
    at Object.<anonymous> (/Users/lyk/Documents/GitHub/Support/server.js:13:5)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1347:8)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  code: 'EADDRINUSE',
  errno: -48,
  syscall: 'listen',
  address: '::',
  port: 8080
}

위와 같이 8080을 쓰려는 순간 에러가 발생하였다. 이 전에 8080 port를 사용하다가 비정상적으로 종료시킨거 같다.

해결

  • 8080 port를 사용하고 있는 프로세스의 id를 알아내야 한다.
  • sudo lsof -i :8080 를 통해 알 수 있다.
  • 이제 이 프로세스를 죽인다.
  • sudo kill -9 [pid]
  • lsof에 관하여
    • lsof는 list open files의 약자로 시스템에 열려있는 파일에 대한 정보를 출력해주는 명령이다.
    • sudo yum install lsof 를 통해 설치가 가능하다
    • i 옵션은 IPv4로 오픈한 소켓에 대한 정보들이 나온다.

참고자료

[TIL] 에러노트📕 - [Node js] address already in use

[Linux] lsof 명령어 사용법

profile
미래를 생각하는 개발자

0개의 댓글