FastAPI를 공부하던 도중, 아래와 같은 bash 명령을 통해 FastAPI와 호환되는 ASGI 웹 서버, uvicorn 서버를 생성해주려고 하였다.
$ uvicorn main:app --reload
그러나 다음과 같은 error가 발생하고 말았다..☠️
Error: [WinError 10013] 액세스 권한에 의해 숨겨진 소켓에 액세스를 시도했습니다
이는 코드의 문제가 아니라, 누군가(본인 포함)가 동일한 포트를 사용하고 있기 때문이다.
나의 경우 노트북에서 8000(default) port가 기존에 사용되고 있었기 때문에, 이러한 에러가 발생하였다.
여러분도 cmd에서 netstat -ano | find "LISTEN"
또는 netstat -ano | findstr 8000
를 통해 해당 포트를 사용하고 있는지 확인해보시길😊
그러나, pc에서는 깔끔히 실행되던....
해결 방법은 간단하다.
다른 포트를 사용하거나, 현재 8000번 포트를 사용 중인 서비스를 종료하거나.
기존의 uvicorn 실행 명령어에 port argument를 추가해주도록 하자!
uvicorn main:app --reload --port 8001
8001번으로 설정하여 실행했더니, 아무 문제없이 잘 실행되는 것을 확인할 수 있었다.
작업관리자 > 서비스로 이동하면 PID 리스트를 확인할 수 있는데 위에서 확인한 PID
번호를 찾아 어떤 프로세스가 포트를 이용하고 있는지 확인한다.
PID
라는 것이다.PID에 해당하는 서비스를 찾았으면, 오른쪽 버튼을 눌러 해당 서비스를 중지시키면 된다. 😎
REFERENCE
사용중인 포트 확인 및 종료하는 방법