Le redémarrage du serveur Django affiche l'erreur suivante:
this port is already running....
Ce problème se produit spécifiquement sur Ubuntu et non sur d'autres systèmes d'exploitation. Comment libérer le port pour redémarrer le serveur?
Le redémarrage du serveur Django affiche l'erreur suivante:
this port is already running....
Ce problème se produit spécifiquement sur Ubuntu et non sur d'autres systèmes d'exploitation. Comment libérer le port pour redémarrer le serveur?
Réponses:
Une solution plus simple suffit de taper sudo fuser -k 8000/tcp
. Cela devrait tuer tous les processus associés au port 8000.
ÉDITER:
Pour les utilisateurs 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 fonctionne déjà en tuant 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
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, passez-le comme argument de ligne de commande. Par exemple, cette commande démarre le serveur sur le port 8080:
python manage.py runserver 8080
Nous n'utilisons pas cette commande {sudo lsof -t -i tcp: 8000 | xargs kill -9} Parce qu'il ferme tous les onglets ... Vous devez utiliser pour
ps -ef | grep python
kill -9 process_id
ps -ef | grep python (afficher tous les processus avec id)
kill -9 11633 (11633 est un identifiant de processus pour: - / bin / python manage.py runserver)
Ceci est une extension de la réponse de Mounir. J'ai ajouté un script bash qui couvre cela pour vous. Exécutez simplement ./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
Pour moi, cela se produit car ma demande d'API dans Postman est interceptée par un point d'arrêt du débogueur dans mon application ... laissant la demande suspendue. 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 toutes les demandes ouvertes 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 demande http ouverte afin de résoudre error = That port is already in use.
Cela aussi, complet ferme mon application Postman, c'est pourquoi ma première solution est meilleure.
Tapez 'fg' comme commande après ctl-c.
Commande:
Fg montrera qui fonctionne en arrière-plan. Après cela, ctl-c l'arrêtera.
fg
ctl-c
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
Il semble que les IDE, VSCode, Puppeteer, nodemon, express, etc. provoquent ce problème, vous avez exécuté un processus en arrière-plan ou fermé la zone de débogage [navigateur, terminal, etc.] ou quoi que ce soit, de toute façon, j'ai répondu à la même question avant, vous voilà son lien
si vous avez fait face à ce problème dans mac, il vous suffit d'ouvrir le moniteur d'activité et de forcer tout à fait python, puis réessayez
Dans le cas où vous utilisez le terminal d'écran du VSC, l'erreur peut être due au fait que vous exécutez déjà le serveur dans un autre shell.
Cliquez simplement sur la liste déroulante à gauche du signe + dans l'en-tête du terminal de VSC et sélectionnez un autre shell et vérifiez si le serveur y fonctionne déjà. Quittez ce serveur et vous êtes prêt à lancer un autre serveur.
sudo lsof -i tcp:8000
puis tuer les identifiants de processus qui s'affichent.