Beim Neustart des Django-Servers wird der folgende Fehler angezeigt:
this port is already running....
Dieses Problem tritt speziell unter Ubuntu und nicht unter anderen Betriebssystemen auf. Wie kann ich den Port freigeben, um den Server neu zu starten?
sudo lsof -i tcp:8000
die angezeigten Prozess-IDs verwenden und dann beenden.Es wird so etwas zeigen.
Schließen Sie nun einfach den Port, in dem Django / Python bereits ausgeführt wird, indem Sie den damit verbundenen Prozess beenden.
in meinem Fall
Führen Sie jetzt Ihre Django-App aus.
quelle
quelle
Standardmäßig startet der Befehl runserver den Entwicklungsserver auf der internen IP an Port 8000.
Wenn Sie den Port des Servers ändern möchten, übergeben Sie ihn als Befehlszeilenargument. Mit diesem Befehl wird beispielsweise der Server an Port 8080 gestartet:
quelle
Wir verwenden diesen Befehl nicht {sudo lsof -t -i tcp: 8000 | xargs kill -9} Weil alle Registerkarten geschlossen sind ... sollten Sie verwenden
ps -ef | grep python (zeige alle Prozesse mit id)
kill -9 11633 (11633 ist eine Prozess-ID für: - / bin / python manage.py runserver)
quelle
Dies ist eine Erweiterung von Mounirs Antwort. Ich habe ein Bash-Skript hinzugefügt, das dies für Sie abdeckt. Laufen Sie einfach
./scripts/runserver.sh
statt./manage.py runserver
und es wird genauso funktionieren.quelle
Entschuldigung für den Kommentar in einem alten Beitrag, aber es kann Menschen helfen
Geben Sie dies einfach in Ihr Terminal ein
Es wird alle Python3 töten, die auf Ihrem Computer ausgeführt werden, und es wird Ihren gesamten Port freigeben. Hilf mir sehr, wenn ich im Django- Projekt arbeiten soll.
quelle
Für mich geschieht dies, weil meine API-Anfrage in Postman von einem Debugger-Haltepunkt in meiner App abgefangen wird ... und die Anfrage hängen bleibt. Wenn ich die Anforderung in Postman abbreche, bevor ich den Server meiner App beende, tritt der Fehler überhaupt nicht auf.
-> Versuchen Sie also, alle offenen Anfragen abzubrechen, die Sie in anderen Programmen stellen.
Unter macOS habe ich verwendet,
sudo lsof -t -i tcp:8000 | xargs kill -9
wenn ich vergessen habe, die geöffnete http-Anfrage abzubrechen, um sie zu lösen.error = That port is already in use.
Außerdem wird meine Postman-App vollständig geschlossen, weshalb meine erste Lösung besser ist.quelle
Geben Sie danach 'fg' als Befehl ctl-c ein.
Befehl:
Fg zeigt an, was im Hintergrund läuft. Danach stoppt ctl-c es.
quelle
ps aux | grep verwalten
ubuntu 3438 127.0.0 2.3 40256 14064 pts / 0 T 06:47 0:00 python manage.py runserver
töte -9 3438
quelle
Es scheint, dass IDEs, VSCode, Puppenspieler, Nodemon, Express usw. dieses Problem verursachen. Sie haben einen Prozess im Hintergrund ausgeführt oder nur den Debugging-Bereich [Browser, Terminal usw.] geschlossen oder was auch immer, ich habe dieselbe Frage beantwortet vorher, hier bist du es ist Link
https://stackoverflow.com/a/49797588/2918720
quelle
Wenn Sie dieses Problem auf dem Mac haben, müssen Sie nur den Aktivitätsmonitor öffnen und ganz Python erzwingen. Versuchen Sie es dann erneut
quelle
lsof -t -i tcp: 8000 | Xargs töten -9
quelle
Wenn Sie das Bildschirmterminal des VSC verwenden, liegt der Fehler möglicherweise daran, dass Sie den Server bereits in einer anderen Shell ausgeführt haben.
Klicken Sie einfach auf die Dropbox links neben dem + -Zeichen in der Kopfzeile des Terminals von VSC, wählen Sie eine andere Shell aus und prüfen Sie, ob der Server dort bereits ausgeführt wird. Beenden Sie diesen Server und Sie können einen anderen Server starten.
quelle