오류 제보, 내용 개선에 대한 건의는 얼마든지 환영합니다. :)
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 프로젝트가 정상 실행됨을 확인하고 문제를 종결 처리했습니다.
서비스
검색 후 실행Intel(R) Graphics Command Center Service
명칭의 서비스 검색중지
사용 안 함
변경Intel 사의 내장 그래픽 카드를 사용하는 Windows 디바이스
를 사용할 경우, 관련 소프트웨어인 Intel Graphics Command Center가 9001 포트를 사용하여 충돌
을 일으킬 수 있습니다.
System 프로세스로 취급되기 때문에 강제종료가 불가능
하므로, 해당 프로그램을 서비스에서 찾아 중지 및 자동으로 시작되지 않게 해주어야
9001 포트를 정상적으로 사용할 수 있습니다.