runserver 명령어를 실행 할 때 Server Error: port is already in use 가 뜨면서 서버가 실행 되지 않는 경우가 발생 하는 경우가 있다.
Django의 기본 포트인 8000이 사용중이거나 사용자가 입력한 포트가 사용중일 때 발생하는 에러이다.
해결방법은 포트를 사용하고 있는 process를 죽이고 다시 서버를 실행 시키면 해결 된다.
어떤 process인지 확인하려면 먼저 netstat 명령어를 사용한다.
간단히 설명 하면 netstat는 네트워크 접속, 네트워크 인터페이스 등의 정보를 보여주는 명령어
사용 방법 :
netstat [옵션] [| grep 포트 번호 or 서비스 명]
option:
-l (listen) : 연결 가능한 상태
-n (number port) : 포트 넘버
-t (tcp) : tcp
-u (udp) : udp
-p : 프로그램 이름 / PID
-a : 모두
-i : 이더넷 카드별 정상/에러/드랍 송수신 패킷 수 확인
-r : 라우팅 테이블
-s : 네트워크 통계
netstat -ntlp 명령어를 입력 하면 아래와 같은 내용이 뜨게 된다
현재 8000번 포트가 사용중인걸 확인 할 수 있다
kill 명령어를 통해 포트 8000번을 사용하고 있는 process를 죽이면 다시 사용할 수 있다.
kill -9 [PID] 를 통해 입력한 PID 값의 process를 종료 시킬 수 있다.
그리고 다시 runserver를 하게 되면 에러 없이 서버를 돌릴 수 있다.
위에 경우는 윈도우 운영체제일 경우이며 Mac 운영체제의 경우는
lsof -i :port
명령어를 이용해서 process를 확인할 수 있으며 윈도우 운영체제와 마찬가지로
kill -9 [PID]를 이용하여 process를 종료 시킬 수 있다.
'Error' 카테고리의 다른 글
[ssh] ssh 시도 중 'Host key verification failed.' 에러 해결 (0) | 2020.12.31 |
---|