Ponowne uruchomienie serwera Django wyświetla następujący błąd:
this port is already running....
Ten problem występuje szczególnie w systemie Ubuntu, a nie w innych systemach operacyjnych. Jak mogę zwolnić port, aby zrestartować serwer?
Prostsze rozwiązanie wystarczy wpisać sudo fuser -k 8000/tcp
. To powinno zabić wszystkie procesy związane z portem 8000.
EDYTOWAĆ:
Dla użytkowników osx możesz użyć sudo lsof -t -i tcp:8000 | xargs kill -9
sudo lsof -i tcp:8000
a następnie zabić identyfikatory procesu, które się wyświetlają.Pokaże coś takiego.
Teraz wystarczy zamknąć port, w którym działa już Django / python, zabijając powiązany z nim proces.
w moim przypadku
Teraz uruchom aplikację Django.
źródło
źródło
Domyślnie polecenie runserver uruchamia serwer programistyczny na wewnętrznym adresie IP na porcie 8000.
Jeśli chcesz zmienić port serwera, przekaż go jako argument wiersza polecenia. Na przykład to polecenie uruchamia serwer na porcie 8080:
źródło
Nie używamy tego polecenia {sudo lsof -t -i tcp: 8000 | xargs kill -9} Ponieważ to zamknie wszystkie karty ... Powinieneś użyć
ps -ef | grep python (pokaż cały proces z identyfikatorem)
kill -9 11633 (11633 to identyfikator procesu do: - / bin / python manage.py runserver)
źródło
To rozszerzenie odpowiedzi Mounira. Dodałem dla ciebie skrypt bash. Po prostu uruchom
./scripts/runserver.sh
zamiast./manage.py runserver
i będzie działać dokładnie w ten sam sposób.źródło
Przepraszamy za komentarz w starym poście, ale może pomóc ludziom
Po prostu wpisz to na swoim terminalu
Zabije wszystkie python3 uruchomione na twoim komputerze i uwolni cały twój port. Bardzo mi pomóż, kiedy mam pracować w projekcie Django .
źródło
Dla mnie dzieje się tak, ponieważ moje żądanie API w Postmanie jest przechwytywane przez punkt przerwania debuggera w mojej aplikacji ... pozostawiając zawieszone żądanie. Jeśli anuluję żądanie w Postman przed zabiciem serwera mojej aplikacji, błąd nie wystąpi w pierwszej kolejności.
-> Więc spróbuj anulować wszelkie otwarte żądania składane w innych programach.
W systemie macOS używam,
sudo lsof -t -i tcp:8000 | xargs kill -9
gdy zapominam anulować otwarte żądanie HTTP w celu rozwiązania.error = That port is already in use.
Również kompletne zamyka moją aplikację Postman, dlatego moje pierwsze rozwiązanie jest lepsze.źródło
Wpisz „fg” jako polecenie po tym ctl-c.
Polecenie:
Fg pokaże, które działa w tle. Po tym ctl-c go zatrzyma.
źródło
ps aux | grep zarządzać
ubuntu 3438 127.0.0 2.3 40256 14064 pkt / 0 T 06:47 0:00 python manage.py runserver
zabij -9 3438
źródło
Wygląda na to, że IDE, VSCode, Puppeteer, nodemon, express itp. Powodują ten problem, uruchomiłeś proces w tle lub właśnie zamknąłeś obszar debugowania [przeglądarka, terminal itp.] Lub cokolwiek, w każdym razie odpowiedziałem na to samo pytanie wcześniej, tutaj jest link
https://stackoverflow.com/a/49797588/2918720
źródło
Jeśli masz do czynienia z tym problemem w systemie Mac, wystarczy otworzyć monitor aktywności i wymusić dość Python, a następnie spróbuj ponownie
źródło
lsof -t -i tcp: 8000 | xargs zabija -9
źródło
W przypadku korzystania z terminalu ekranowego VSC, błąd może wynikać z faktu, że już uruchomiłeś serwer w innej powłoce.
Wystarczy kliknąć dropbox po lewej stronie znaku + w nagłówku terminala VSC i wybrać inną powłokę i sprawdzić, czy serwer już tam działa. Zamknij ten serwer, a będziesz gotowy do uruchomienia innego serwera.
źródło