quand j'essaie de relancer Django pour afficher son message:
ce port fonctionne déjà ....
ce problème spécialement sur ubunut 10.x, mais pas tous. Comment puis-je y parvenir avec le système actuel sur lequel je travaille? pouvez-vous me suggérer?
Une solution plus simple suffit de taper Sudo fuser -k 8000/tcp
..__, ce qui devrait tuer tous les processus associés au port 8000.
MODIFIER:
Pour les utilisateurs d'osx, vous pouvez utiliser Sudo lsof -t -i tcp:8000 | xargs kill -9
netstat -ntlp
Cela montrera quelque chose comme ça.
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
Alors maintenant, fermez simplement le port dans lequel Django/Python est déjà en cours d'exécution en supprimant le processus qui lui est associé.
kill -9 PID
dans mon cas
kill -9 6599
Maintenant, lancez votre application 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
Nous n'utilisons pas cette commande {Sudo lsof -t -i tcp: 8000 | xargs kill -9} Puisqu'il ferme tous les onglets ... vous devriez utiliser pour
ps -ef | grep python
kill -9 id_processus
ps -ef | grep python (affiche tous les processus avec id)
kill -9 11633 (11633 est un identifiant de processus pour: -/bin/python manage.py runserver)
C'est une extension de la réponse de Mounir. J'ai ajouté un script bash qui couvre cela pour vous. Il suffit d’exécuter ./scripts/runserver.sh
au lieu de ./manage.py runserver
et cela fonctionnera exactement de la même manière.
#!/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
Par défaut, la commande runserver démarre le serveur de développement sur l’IP interne au port 8000.
Si vous souhaitez modifier le port du serveur, transmettez-le en tant qu’argument de ligne de commande. Par exemple, cette commande démarre le serveur sur le port 8080:
python manage.py runserver 8080
Pour moi, cela se produit parce que ma demande d'API dans Postman est interceptée par un point d'arrêt du débogueur dans mon application ... en laissant la demande en suspens. Si j'annule la demande dans Postman avant de tuer le serveur de mon application, l'erreur ne se produit pas en premier lieu.
-> Essayez donc d’annuler toute demande ouverte que vous faites dans d’autres programmes.
Sur macOS, j’utilise Sudo lsof -t -i tcp:8000 | xargs kill -9
lorsque j’oublie d’annuler la requête http ouverte afin de résoudre le problème error = That port is already in use.
. Ceci ferme également mon application Postman, ce qui explique pourquoi ma première solution est meilleure.
Il semble que les IDE, VSCode, Puppeteer, Nodemon, Express, etc. soient à l'origine de ce problème, vous avez exécuté un processus en arrière-plan ou vous venez de fermer la zone de débogage [navigateur, terminal, etc.] ou peu importe, j'ai quand même répondu à la même question. avant, Ici vous êtes c'est link
ps aux | grep gérer
ubuntu 3438 127.0.0 2.3 40256 14064 pts/0 T 06:47 0:00 python manage.py runserver
tuer -9 3438