Reiniciar el servidor Django muestra el siguiente error:
this port is already running....
Este problema ocurre específicamente en Ubuntu y no en otros sistemas operativos. ¿Cómo puedo liberar el puerto para reiniciar el servidor?
Reiniciar el servidor Django muestra el siguiente error:
this port is already running....
Este problema ocurre específicamente en Ubuntu y no en otros sistemas operativos. ¿Cómo puedo liberar el puerto para reiniciar el servidor?
Respuestas:
Una solución más simple simplemente escriba sudo fuser -k 8000/tcp
. Esto debería eliminar todos los procesos asociados con el puerto 8000.
EDITAR:
Para usuarios de osx puedes usar sudo lsof -t -i tcp:8000 | xargs kill -9
netstat -ntlp
Mostrará algo como esto.
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
Así que ahora solo cierre el puerto en el que Django / python ya se está ejecutando eliminando el proceso asociado con él.
kill -9 PID
en mi caso
kill -9 6599
Ahora ejecuta tu aplicación 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
De manera predeterminada, el comando runserver inicia el servidor de desarrollo en la IP interna en el puerto 8000.
Si desea cambiar el puerto del servidor, páselo como un argumento de línea de comandos. Por ejemplo, este comando inicia el servidor en el puerto 8080:
python manage.py runserver 8080
No usamos este comando {sudo lsof -t -i tcp: 8000 | xargs kill -9} Porque está cerca de todas las pestañas ... Deberías usar para
ps -ef | grep python
kill -9 process_id
ps -ef | grep python (mostrar todo el proceso con id)
kill -9 11633 (11633 es una identificación de proceso para: - / bin / python manage.py runserver)
Esta es una expansión de la respuesta de Mounir. He agregado un script bash que cubre esto para ti. Simplemente ejecute en ./scripts/runserver.sh
lugar de ./manage.py runserver
y funcionará exactamente de la misma manera.
#!/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
Para mí, esto sucede porque mi solicitud de API en Postman está siendo interceptada por un punto de interrupción del depurador en mi aplicación ... dejando la solicitud suspendida. Si cancelo la solicitud en Postman antes de matar el servidor de mi aplicación, el error no ocurre en primer lugar.
-> Así que intenta cancelar cualquier solicitud abierta que estés haciendo en otros programas.
En macOS, he estado usando sudo lsof -t -i tcp:8000 | xargs kill -9
cuando me olvido de cancelar la solicitud http abierta para resolver error = That port is already in use.
Esto también cierra mi aplicación Postman, por lo que mi primera solución es mejor.
Escriba 'fg' como comando después de ese ctl-c.
Comando:
Fg mostrará cuál se está ejecutando en segundo plano. Después de eso, ctl-c lo detendrá.
fg
ctl-c
ps aux | grep administrar
ubuntu 3438 127.0.0 2.3 40256 14064 pts / 0 T 06:47 0:00 python manage.py runserver
matar -9 3438
Parece que IDEs, VSCode, Puppeteer, nodemon, express, etc. causan este problema, ejecutó un proceso en segundo plano o simplemente cerró el área de depuración [navegador, terminal, etc.] o lo que sea, de todos modos, he respondido la misma pregunta antes, aquí tienes su enlace
Si tiene este problema en Mac, solo necesita abrir el monitor de actividad y forzar bastante Python, luego intente nuevamente
En caso de que esté utilizando el terminal de pantalla de VSC, el error podría deberse al hecho de que ya está ejecutando el servidor en otro shell.
Simplemente haga clic en el cuadro desplegable a la izquierda del signo + en el encabezado del terminal de VSC y seleccione otro shell y verifique si el servidor ya se está ejecutando allí. Salga de ese servidor y estará listo para iniciar otro servidor.
sudo lsof -i tcp:8000
luego eliminar los identificadores de proceso que aparecen.