본문 바로가기
개발 기초 다지기

NestJS 서버 포트 충돌 문제 해결(기존 포트 프로세스 죽이기)

by 너의고래 2024. 7. 10.
반응형

이번 과제때 서버를 연결하는데, 포트 충돌이 일어났다. 이유는 내가 이미 3000번 포트를 사용중이기 때문에 연결을 할 수 없다는 것이다.

오류 메시지

[Nest] 194557 - 07/08/2024, 2:05:15 AM ERROR [NestApplication] Error: listen EADDRINUSE: address already in use :::3000 +2ms
Error: listen EADDRINUSE: address already in use :::3000
    at Server.setupListenHandle [as _listen2] (node:net:1898:16)
    at listenInCluster (node:net:1946:12)
    at Server.listen (node:net:2044:7)
    at ExpressAdapter.listen (/home/ubuntu/ticket_reservation/node_modules/@nestjs/platform-express/adapters/express-adapter.js:95:32)
    at /home/ubuntu/ticket_reservation/node_modules/@nestjs/core/nest-application.js:180:30
    at new Promise (<anonymous>)
    at NestApplication.listen (/home/ubuntu/ticket_reservation/node_modules/@nestjs/core/nest-application.js:170:16)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at bootstrap (/home/ubuntu/ticket_reservation/src/main.ts:19:3)

위와 같은 오류 메세지가 떴다.

오류 메세지를 살펴보면 3000번 포트를 이미 사용 중인 다른 프로세스가 있다고한다. 포트가 이미 사용중이라고할 때 해결할 수 있는 방법을 찾아보았다.

해결 방법

해결 방법으로는 2가지가 있었다.

1.현재 포트를 사용하는 프로세스 죽이기 2. 서버를 다른 포트로 실행

서버를 다른 포트로 실행하는 것은 숫자만 바꿔주면 되는 간단한 일이기에 아직 해보지 않은 현재 포트를 사용중인 프로세스를 죽이는 것을 시도해보기로 했다.

 현재 포트를 사용하는 프로세스 확인 및 종료하기

  1. 포트를 사용하는 프로세스 확인: sudo lsof -i :3000
  2. 프로세스 종료: sudo kill -9 <PID>

*여기서 PID는 프로세스 확인을 통해 찾은 프로세스 ID

 

이렇게 프로세스를 확인하고 종료하는 방법은 간단하다. 사실 나는 이렇게 했는데도 해결되지 않아 시스템을 재부팅했더니 3000번 포트로 잘 연결이 되었다. (캐시문제 때문인것 같았다.)

이런식으로 기존에 알고있는 방법 말고도 매번 새로운것을 시도해보고 기존 내가 아는 방법과 비교해보는 개발 생활을 해나가야겠다.

 

반응형

댓글