Ошибка сервера Django: порт уже используется

Перезапуск сервера Django отображает следующую ошибку:

this port is already running....

Эта проблема возникает именно в Ubuntu, а не в других операционных системах. Как я могу освободить порт для перезагрузки сервера?

Ответ 1

Более простое решение просто введите sudo fuser -k 8000/tcp. Это должно убить все процессы, связанные с портом 8000.

EDIT:

Для пользователей osx вы можете использовать sudo lsof -t -i tcp:8000 | xargs kill -9

Ответ 2

netstat -ntlp

Он покажет что-то вроде этого.

   Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State           PID/Program name    
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      6599/python         
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      -                   
tcp        0      0 192.168.124.1:53        0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::3306                 :::*                    LISTEN     

Теперь просто закройте порт, в котором запущен Django/python, убив связанный с ним процесс.

kill -9 PID

в моем случае

kill -9 6599

Теперь запустите приложение Django.

Ответ 3

ps aux | grep -i manage

after that you will see all process 


[email protected]:~/django-apps/projectname$ ps aux | grep -i manage
ubuntu    3439  0.0  2.3  40228 14064 pts/0    T    06:47   0:00 python manage.py runserver project name
ubuntu    3440  1.4  9.7 200996 59324 pts/0    Tl   06:47   2:52 /usr/bin/python manage.py runserver project name
ubuntu    4581  0.0  0.1   7988   892 pts/0    S+   10:02   0:00 grep --color=auto -i manage


kill -9 process id


e.d kill -9 3440


`enter code here`after that :

python manage.py runserver project name

Ответ 4

Мы не используем эту команду {sudo lsof -t -i tcp: 8000 | xargs kill -9} Потому что он закрывает все вкладки... Вы должны использовать

ps -ef | grep python

kill -9 process_id

ps -ef | grep python (показать весь процесс с id)

kill -9 11633 (11633 - это идентификатор процесса для: -/bin/python manage.py runningerver)

Ответ 5

Это расширение на ответ Мунира. Я добавил bash script, который охватывает это для вас. Просто запустите ./scripts/runserver.sh вместо ./manage.py runserver, и он будет работать точно так же.

#!/bin/bash

pid=$(ps aux | grep "./manage.py runserver" | grep -v grep | head -1 | xargs | cut -f2 -d" ")

if [[ -n "$pid" ]]; then
    kill $pid
fi

fuser -k 8000/tcp
./manage.py runserver

Ответ 6

По умолчанию команда runserver запускает сервер разработки с внутреннего IP-адреса на порту 8000.

Если вы хотите изменить порт сервера, передайте его в качестве аргумента командной строки. Например, эта команда запускает сервер на порту 8080:

python manage.py runserver 8080

Ответ 7

ps aux | grep manage

ubuntu 3438 127.0.0 2.3 40256 14064 pts/0 T 06:47 0:00 python manage.py runningerver

kill -9 3438

Ответ 8

Кажется, что IDE, VSCode, Puppeteer, nodemon, express и т.д. Вызывают эту проблему, вы запустили процесс в фоновом режиме или просто закрыли область отладки [браузер, терминал и т.д.] Или что-то еще, во всяком случае, я ответил на тот же вопрос раньше, вот ты это ссылка

fooobar.com/questions/2443349/...

Ответ 9

Для меня это происходит потому, что мой запрос API в Postman перехватывается точкой останова отладчика в моем приложении... оставляя запрос зависшим. Если я отменю запрос в Postman перед тем, как убить сервер приложений, ошибка не возникнет.

→ Так что попробуйте отменить любые открытые запросы, которые вы делаете в других программах.

В macOS я использовал sudo lsof -t -i tcp:8000 | xargs kill -9 sudo lsof -t -i tcp:8000 | xargs kill -9 когда я забываю отменить открытый запрос http для решения error = That port is already in use. Это также завершает закрытие моего приложения Почтальон, поэтому мое первое решение лучше.