[Error] Express : listen EADDRINUSE: address already in use :::5000

jybaek96·2022년 8월 22일
0

Error

목록 보기
3/3
post-thumbnail

react + express 프로젝트에서 서버를 구동하던 중 만난 에러다.

에러 원인

5000번 포트가 현재 다른 프로세스에서 사용중이기에 해당 포트를 사용하는 현재 서비스를 시작할 수 없다는 에러 메세지 (에러 포트 번호가 5000번이 아닐 수도 있음)


해결 방법

5000번 포트를 사용하는 프로세스를 찾고, 필요하지 않은 경우 종료를 해야 한다.

(1) macOS에서 포트 사용하는 프로세스 찾기 및 죽이기

// 터미널에 활성화된 프로세스 리스트 출력
lsof

// 특정 포트 사용 중인 프로세스 조회
lsof -i TCP:5000

COMMAND     PID          USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
ControlCe  1495 baekjeongyeon   23u  IPv4 0xb1ac9a99ec85b0cb      0t0  TCP *:commplex-main (LISTEN)
ControlCe  1495 baekjeongyeon   24u  IPv6 0xb1ac9a9ebac2a583      0t0  TCP *:commplex-main (LISTEN)
Google    13434 baekjeongyeon   46u  IPv6 0xb1ac9a9ec6ffc883      0t0  TCP localhost:51824->localhost:commplex-main (CLOSE_WAIT)

// 원하는 프로세스 죽이기 (kill 명령어로 강제로 종료 및 -9는 kill의 강제 종료 시그놀인 9번을 사용한다는 의미)
kill -9 1495

그런데 자세히 보면 command 종류가 node가 아닌 ControlCe였다..!

(2) macOS Monterey 관련 이슈 해결

Monterey로 업데이트 하면서 생긴 문제 같다.

  • 시스템 환경 설정 - 공유 - AirPlay 수신 모드 항목의 체크를 해제

  • 이후에 5000번 포트 사용 프로세스 조회시 깔끔하게 없어짐

참고 자료(Reference)

apple.developer

0개의 댓글