Node.js 서버를 실행했을 때, Error: listen EADDRINUSE: address already in use 127.0.0.1:8080 에러가 발생하는 경우가 있다.
이 경우 실행한 포트를 이미 다른 서비스가 점유하고 있을 가능성이 높다.
Error: listen EADDRINUSE: address already in use 127.0.0.1:8080
at Server.setupListenHandle [as _listen2] (net.js:1320:16)
at listenInCluster (net.js:1368:12)
at doListen (net.js:1505:7)
at processTicksAndRejections (internal/process/task_queues.js:83:21)
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: '127.0.0.1',
port: 8080
}
해당 오류가 발생했을 때는 우선 터미널에서 해당 포트로 실행되고 있는 프로세스를 lsof -i TCP:{포트번호} 로 확인해야 한다.
lsof -i TCP:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 3761 user 22u IPv4 0x6e41e9df2f0ddcc9 0t0 TCP localhost:http-alt (LISTEN)
node 프로세스가 8080 포트를 점유하고 있는 것을 알 수 있다.
이제 kill -9 {PID} 명령어를 통해 해당 프로세스를 종료시키면 정상적으로 서버가 실행되는 것을 확인할 수 있다.
댓글