wenn ich Django versuche, seine Nachricht erneut zu starten:
dieser Port läuft bereits ....
dieses problem speziell auf ubunut 10.x nicht alle OS.wie kann ich dies auf dem aktuellen system erreichen, an dem ich arbeite? kannst du mir vorschlagen
Eine einfachere Lösung geben Sie einfach Sudo fuser -k 8000/tcp
..__ ein. Dadurch sollten alle mit Port 8000 verbundenen Prozesse beendet werden.
BEARBEITEN:
Für osx-Benutzer können Sie Sudo lsof -t -i tcp:8000 | xargs kill -9
verwenden.
netstat -ntlp
Es wird so etwas zeigen.
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
Schließen Sie nun einfach den Port, in dem Django/Python bereits läuft, indem Sie den damit verbundenen Prozess beenden.
kill -9 PID
in meinem Fall
kill -9 6599
Führen Sie jetzt Ihre Django-App aus.
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
Wir verwenden diesen Befehl nicht {Sudo lsof -t -i tcp: 8000 | xargs kill -9} Weil es alle Tabs schließt ... Sie sollten es verwenden
ps -ef | Grep-Python
töte -9 Prozess-ID
ps -ef | grep python (zeige alle Prozesse mit der ID)
kill -9 11633 (11633 ist eine Prozess-ID für: -/bin/python manage.py runserver)
Dies ist eine Erweiterung der Antwort von Mounir. Ich habe ein Bash-Skript hinzugefügt, das dies für Sie abdeckt. Führen Sie einfach ./scripts/runserver.sh
anstelle von ./manage.py runserver
aus, und es funktioniert genauso.
#!/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
Der Befehl runserver startet standardmäßig den Entwicklungsserver auf der internen IP-Adresse an Port 8000.
Wenn Sie den Port des Servers ändern möchten, übergeben Sie ihn als Befehlszeilenargument. Beispielsweise startet dieser Befehl den Server an Port 8080:
python manage.py runserver 8080
Für mich geschieht dies, weil meine API-Anforderung in Postman von einem Debugger-Haltepunkt in meiner App abgefangen wird und die Anforderung hängen bleibt. Wenn ich die Anforderung in Postman storniere, bevor ich den Server meiner App beendet habe, tritt der Fehler nicht an erster Stelle auf.
-> Versuchen Sie also, alle offenen Anfragen abzubrechen, die Sie in anderen Programmen stellen.
Unter macOS verwende ich Sudo lsof -t -i tcp:8000 | xargs kill -9
, wenn ich vergesse, die offene http-Anfrage abzubrechen, um error = That port is already in use.
zu lösen. Dadurch wird auch meine Postman-App vollständig geschlossen, weshalb meine erste Lösung besser ist.
Es scheint, dass IDEs, VSCode, Puppeteer, nodemon, express usw. dieses Problem verursachen. Sie haben einen Prozess im Hintergrund ausgeführt oder einfach den Debugging-Bereich (Browser, Terminal usw.) geschlossen oder was auch immer, ich habe dieselbe Frage beantwortet vor, Hier sind Sie link
ps aux | grep managen
ubuntu 3438 127.0.0 2.3 40256 14064 pts/0 T 06:47 0:00 python manage.py runserver
töte -9 3438