Перезапуск сервера Django отображает следующую ошибку:
this port is already running....
Эта проблема возникает именно в Ubuntu, а не в других операционных системах. Как я могу освободить порт для перезагрузки сервера?
Перезапуск сервера Django отображает следующую ошибку:
this port is already running....
Эта проблема возникает именно в Ubuntu, а не в других операционных системах. Как я могу освободить порт для перезагрузки сервера?
Ответы:
Более простое решение просто введите sudo fuser -k 8000/tcp
. Это должно убить все процессы, связанные с портом 8000.
РЕДАКТИРОВАТЬ:
Для пользователей OSX вы можете использовать sudo lsof -t -i tcp:8000 | xargs kill -9
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.
ps aux | grep -i manage
after that you will see all process
ubuntu@ip-10-154-22-113:~/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
По умолчанию команда runserver запускает сервер разработки с внутреннего IP-адреса на порту 8000.
Если вы хотите изменить порт сервера, передайте его в качестве аргумента командной строки. Например, эта команда запускает сервер на порту 8080:
python manage.py runserver 8080
Мы не используем эту команду {sudo lsof -t -i tcp: 8000 | xargs kill -9} Потому что он закрывает все вкладки ... Вы должны использовать для
ps -ef | grep python
убить -9 process_id
ps -ef | grep python (показать весь процесс с идентификатором)
kill -9 11633 (11633 - это идентификатор процесса для: - / bin / python manage.py runserver)
Это расширение ответа Мунира. Я добавил bash-скрипт, который охватывает это для вас. Просто запустите ./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
Для меня это происходит потому, что мой запрос API в Postman перехватывается точкой останова отладчика в моем приложении ... оставляя запрос зависшим. Если я отменю запрос в Postman перед тем, как убить сервер моего приложения, ошибка не возникнет в первую очередь.
-> Так что попробуйте отменить любые открытые запросы, которые вы делаете в других программах.
В macOS я использую, sudo lsof -t -i tcp:8000 | xargs kill -9
когда я забываю отменить запрос http, чтобы решить error = That port is already in use.
эту проблему. Кроме того, complete закрывает мое приложение Postman, поэтому мое первое решение лучше.
Введите 'fg' как команду после этого ctl-c.
Команда:
Fg покажет, что работает на фоне. После этого ctl-c остановит его.
фг
ctl-c
PS Aux | Греп управлять
ubuntu 3438 127.0.0 2.3 40256 14064 pts / 0 T 06:47 0:00 python manage.py runserver
убить -9 3438
Кажется, что IDE, VSCode, Puppeteer, nodemon, express и т. Д. Вызывают эту проблему, вы запустили процесс в фоновом режиме или просто закрыли область отладки [браузер, терминал и т. Д.] Или что-то еще, во всяком случае, я ответил на тот же вопрос до, вот вам это ссылка
Если вы столкнулись с этой проблемой в Mac, вам просто нужно открыть монитор активности и запустить Python, а затем попробуйте снова
Если вы используете экранный терминал VSC, ошибка может быть связана с тем, что вы уже запускаете сервер в какой-либо другой оболочке.
Просто нажмите на выпадающее меню слева от знака + в заголовке терминала VSC, выберите другую оболочку и проверьте, работает ли сервер там. Закройте этот сервер, и вы готовы запустить другой сервер.
sudo lsof -i tcp:8000
затем убить идентификаторы процесса, которые появляются.