React 프로젝트 실행 시 9001 포트가 사용 중일 때

dev-song·2020년 11월 25일
0

디버그 한마당

목록 보기
1/1

오류 제보, 내용 개선에 대한 건의는 얼마든지 환영합니다. :)


문제 상황

Visual Studio Code에서 React 프로젝트를 테스트하던 어느 날,
데스크탑에서 작업하다가 노트북으로 옮겨 프론트엔드 코드를 만지려던 상황이었습니다.

프로젝트의 백엔드 API 서버가 9001 포트를 사용하고 있어,
CORS 이슈를 피하기 위해 (=== 동일한 출처로 만들기 위해)
react-scripts start 스크립트에 포트 번호를 추가해
set PORT=9001 && react-scripts start로 변경해 실행시키려 했습니다.
데스크탑에서는 문제없이 작동한 스크립트였어요.

그런데 아래와 같은 메시지가 터미널에 뜨게 됩니다.

? Something is already running on port 9001

Would you like to run the app on another port instead? (Y/n)

응? 9001 포트에 뭐가 이미 돌아가고 있다고?
따로 돌린 거 없는데? 일단 무시하고 그냥 해보지 뭐.

하지만 그렇게 간단히 무시될 만한 문제였다면 지금 이 글을 쓰고 있지도 않겠죠.
Y를 선택했더니 다른 포트인 9002로 실행되긴 했지만, 포트가 달라 CORS 이슈가 발생했고, 당연히 백엔드 API를 불러올 수가 없었습니다.
그렇다고 반대인 n을 선택했더니 아예 실행이 되지 않고 스크립트가 종료되어 버리는 사태가 발생했습니다.

브라우저 확장프로그램 등 어딘가의 프로그램이 포트를 쓰는 것일까봐 재부팅을 해도 어김없이 나타나는 Something is already running on port 9001

결국 구글신의 도움을 청하게 됩니다.


실행 환경

|Category|Environment|
|--------|---------|
|OS|Windows 10 Home 20H2|
|Hardware|삼성 갤럭시북 이온 NT950XCJ-K58|
|Software|Visual Studio Code 1.51.1|


문제 해결 과정

구글 검색 키워드 | 검색 후 참고한 자료

check program using port | How to check which application is using which port

netstat -ano | findstr :[port_number] 명령어를 사용하면 특정 포트를 쓰는 프로세스를 확인할 수 있습니다.
netstat -ano | findstr :9001 명령어를 실행했더니, PID가 4인 프로세스가 9001 포트를 쓰고 있었습니다.

kill process using port localhost | How to kill the process currently using a port on localhost in windows

taskkill /PID [pid] 명령어를 사용하면 특정 PID를 가진 프로세스를 종료시킬 수 있습니다.
taskkill /PID 4 명령어를 실행했더니, 아래와 같은 오류가 발생하며 프로세스는 종료되지 않았습니다.

오류: 프로세스(PID 4)를 종료할 수 없습니다.
원인: 액세스가 거부되었습니다.

pid 4 system kill | port 80 for apache server is in use by PID 4 (System) and cannot be stopped

PID 4의 프로세스는 일반 프로그램이 아닌 System이기 때문에 종료되지 않는다는 것을 알게 되었습니다.

port 9001 used by system | 9001 port is used on windows 10

검색어를 바꿔 시스템이 9001 포트를 쓰는 경우를 검색해보았습니다.
한 GitHub 이슈가 검색되었고, 해당 페이지 댓글에서 Intel 그래픽 카드 소프트웨어와 연관된 문제일수도 있다는 실마리를 얻게 되었습니다.

intel graphics command center service 9001 | Intel graphics command center service use port 9001, how can I change that ? - Intel Community

추가로 Intel 그래픽 카드 소프트웨어 9001 키워드를 검색해봤고, Intel 커뮤니티의 게시글이 존재하는 것을 보고 Intel 소프트웨어 관련 문제라는 것을 재확인했습니다.
페이지 내 마지막 답변의 해결 방법을 따라한 뒤, 재부팅하여 이상 없이 해결되었는지, React 프로젝트는 정상적으로 실행되는지 확인했습니다.
시스템에 이상 없음 및 React 프로젝트가 정상 실행됨을 확인하고 문제를 종결 처리했습니다.


해결 방법

출처 | GitHub 이슈 댓글

  1. 시작 메뉴
  2. 서비스 검색 후 실행
  3. Intel(R) Graphics Command Center Service 명칭의 서비스 검색
  4. 우클릭 후 중지
  5. 우클릭 > 속성 > 시작 유형 사용 안 함 변경
  6. 재부팅

TL;DR

Intel 사의 내장 그래픽 카드를 사용하는 Windows 디바이스를 사용할 경우, 관련 소프트웨어인 Intel Graphics Command Center가 9001 포트를 사용하여 충돌을 일으킬 수 있습니다.
System 프로세스로 취급되기 때문에 강제종료가 불가능하므로, 해당 프로그램을 서비스에서 찾아 중지 및 자동으로 시작되지 않게 해주어야 9001 포트를 정상적으로 사용할 수 있습니다.


참고자료

profile
A junior web front-end developer.

0개의 댓글