티스토리 뷰
배경 및 문제
Node.js를 실행하다 보면 아래와 같은 오류를 마주칠 때가 종종 있다.
Error: listen EADDRINUSE: address already in use :::<포트번호>
클라이언트에서 서버에 요청을 보낼 때 특정 번호의 포트로 전달해야 하는데,
이미 다른 프로세스가 해당 포트번호로 실행 (사용) 중이기 때문에 위의 오류가 발생하는 것이다.
cf. <포트번호>
- 인터넷을 사용할 때 정해진 규칙, 즉 인터넷 프로토콜에 따라 특정 프로세스를 식별하는 번호를 매긴 전송 방식이다.
- WWW (World Wide Web) HTTP는 80번, SSH는 22번, MySQL 은 3306번이 기본 포트번호이며,
프론트엔드는 주로 3000번을, 백엔드는 5000번을 종종 활용한다.
해결
요약: 기존의 해당 포트번호로 실행 중인 프로세스를 종료시키고 다시 실행해야 한다.
[window] @Commpand Prompt
1) 특정 포트번호를 사용하는 네트워크 상태 확인
netstat -ano | findstr [포트번호]
를 입력하면 해당 포트번호를 사용하는 모든 네트워크 상태를 볼 수 있다.
2) 특정 포트번호에 실행중인 프로세스 종료
taskkill /pid [PID번호]
PID번호(맨 오른쪽의 컬럼에 적인 1~5자리 숫자) 를 사용해 아래처럼 입력하면 프로세스를 종료시킬 수 있다.
예)
문제: 3000번 포트로 실행하려고 할 때, listen EADDRINUSE: address already in use Error가 발생
netstat -ano | findstr 3000 #3000번 포트의 네트워크 목록 찾기
# .. 생략 ...
# TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 19172
taskkill /pid 19172 # PID 19172 프로세트 종료
참고
Node.js | EADDRINUSE 에러
간단하게 말하면, 해당 포트가 이미 사용 중이라는 뜻이다.Node.js에서 해당 노드를 종료하지 않고 또 실행하는 경우에서 자주 발생하는 것 같다.
velog.io
'Etc' 카테고리의 다른 글
[Chrome] 크롬 자동 업데이트 비활성화하는 방법 (0) | 2022.07.13 |
---|---|
Swagger 사용법 - Swagger 로 API 명세서 만들기 (기본) (0) | 2022.04.20 |
[VS code] 자동 저장 기능 Auto Save 활성화 (0) | 2021.12.31 |
댓글