Перезапуск сервера Django відображає таку помилку:
this port is already running....
Ця проблема виникає спеціально для Ubuntu, а не інших операційних систем. Як я можу звільнити порт, щоб перезапустити сервер?
Перезапуск сервера Django відображає таку помилку:
this port is already running....
Ця проблема виникає спеціально для Ubuntu, а не інших операційних систем. Як я можу звільнити порт, щоб перезапустити сервер?
Відповіді:
Більш просте рішення просто введіть sudo fuser -k 8000/tcp
. Це повинно знищити всі процеси, пов'язані з портом 8000.
Редагувати:
Для користувачів ОСХ ви можете використовувати 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} Оскільки це закриває всі вкладки ... Ви повинні використовувати
пс -еф | греп пітон
вбити -9 process_id
пс -еф | grep python (показати весь процес із ідентифікатором)
kill -9 11633 (11633 - це ідентифікатор процесу для: - / bin / python Manag.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.
це. Також, повністю закриває мій додаток Postman, тому моє перше рішення краще.
Введіть 'fg' як команду після цього ctl-c.
Команда:
Fg покаже, що працює на тлі. Після цього ctl-c зупинить його.
fg
ctl-c
ps aux | греп керувати
ubuntu 3438 127.0.0 2.3 40256 14064 балів / 0 T 06:47 0:00 python management.py runserver
вбити -9 3438
Здається, що IDE, VSCode, Puppeteer, nodemon, express і т. Д. Викликає цю проблему, ви запустили процес у фоновому режимі або просто закрили область налагодження [браузер, термінал тощо] або що завгодно, все одно, я відповів на те саме запитання раніше, Ось ви це посилання
якщо ви зіткнулися з цією проблемою в mac, вам просто потрібно відкрити монітор активності та примусити python, а потім спробуйте ще раз
Якщо ви використовуєте екранний термінал VSC, помилка може бути пов’язана з тим, що ви вже запустите сервер в іншій оболонці.
Просто натисніть на скриньку зліва від знаку + у заголовку терміналу VSC та виберіть іншу оболонку та перевірте, чи вже там працює сервер. Закрийте цей сервер, і ви готові запустити інший сервер.
sudo lsof -i tcp:8000
а потім знищити ідентифікатори процесу, які з'являються.