[에러] 장고 Error: That port is already in use 해결

Borahm·2021년 5월 14일
1

Django

목록 보기
1/1
post-thumbnail

[Django] 포트 사용 에러 해결

발생

  • 장고에서 서버를 실행할 때 아래 명령을 입력할 것이다.

    $ python3 manage.py runserver

  • 이때 아래와 같은 에러 메시지를 만날 수 있다.

    Error: That port is already in use

  • 이는 말그대로 장고가 실행하려는 8000번 포트가 이미 사용 중이라는 얘기다.

  • 이미 띄워 둔 서버를 정상적으로 종료하지 않은 경우에 또는 다른 서비스가 8000번 포트를 사용하는 경우에 위의 메시지가 나타난다.

    • 특히 Ctrl + z를 사용하여 서버를 멈추는 경우, 다시 서버를 실행하려 할 때 위의 메시지가 나타난다.
    • 올바른 서버 종료를 위해서는 Ctrl + c를 사용하자!

해결

  • 문제를 해결하는 방법은 간단하다. 실행 중인 8000번 포트를 종료하면 된다.

  • 우선, 해당 포트를 어떤 서비스가 사용하고 있는지 알아볼 필요가 있다. 아래 명령을 실행하자.

    $ lsof -i:8000

  • 그 결과 아래 내용이 출력되었다. python3라고 되어 있다면 Django 서비스가 돌고 있다고 보면 된다.

  • 다른 곳에서 띄운적이 없거나, 종료해도 무방한 경우 강제 종료 명령을 써서 실행 중인 장고 프로세스를 종료한다.

  • 강제 종료를 위해 아래 명령을 실행하자.

    $ kill -9 [PID]
    (여기서는 [PID] 자리에 1815를 작성한다.)

  • 실행을 마치고 다시 lsof -i:8000를 실행했을 때, 아무것도 출력되지 않으면 정상적으로 서버가 종료된 것이다.

  • 마지막으로 원하는 서버를 실행하기 위해 아래 명령을 실행한다.

    $ python3 manage.py runserver

  • 명령을 실행했을 때 아래 화면이 나타난다면 정상적으로 8000번 포트에 장고 서버가 실행된 것이다.

대안: 포트 바꾸기

  • 다른 서비스가 이미 8000번 포트를 쓰고 있어 포트를 바꿔야 하는 경우에는 포트 번호를 새로 지정하면 된다.
  • 예를 들어 8001번 포트로 변경하는 경우 아래와 같이 작성할 수 있다.

    python3 manage.py runserver 0.0.0.0:8001

Ref

0개의 댓글