tutorial tarantino pelicula descargar cantante django

tarantino - Cómo ''borrar'' el puerto al reiniciar django runserver



django tutorial (18)

A menudo, al reiniciar Django runserver, si uso el mismo número de puerto, aparece el mensaje ''El puerto ya está en uso''. Posteriormente, necesito incrementar el número de puerto cada vez para evitar esto.

Sin embargo, no es el caso en todos los servidores, así que me pregunto cómo podría lograr esto en el sistema actual en el que estoy trabajando.

Por cierto, la plataforma es Ubuntu 8.10


Este error se debe a que el servidor ya se está ejecutando.

Fondo

Estoy respondiendo en un nivel más general que no es específico de Django como lo hace la pregunta original. Para que aquellos que aterrizan aquí desde Google puedan solucionar fácilmente el problema.

Solución

Cuando necesite borrar un puerto, todo lo que necesita hacer son estos dos pasos

  1. En la terminal ejecuta fg
  2. Presione Control-C (si está en un Mac)

Explicación

fg lleva el proceso al primer plano . Entonces Control-C detiene el servidor.

Ejemplo

De hecho, estaba teniendo este problema con mi puerto 8000 cuando ejecutaba una aplicación angular. Me estaba npm start un error cuando corrí npm start

Así que ejecuté fg , luego paré el servidor con Control-C



Luego pude ejecutar con éxito el servidor


Como dijo mipadi, debe terminar el servidor (ctrl + c) y regresar al símbolo del sistema antes de volver a llamar a manage.py runserver .

Lo único que podría estar perturbando esto sería si de alguna manera has logrado que el servidor funcione como un daemon. Si este es el caso, supongo que está utilizando el servidor de prueba de Django como el servidor web real, lo cual NO debe hacer. El servidor de prueba Django es de un solo hilo, lento y frágil, adecuado solo para el desarrollo local.


Debes haber estado haciendo control + z ... En vez de eso, controla + c que matará la sesión del servidor ... ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡


En Leopard, traigo el Monitor de Actividad y mato a Python. Resuelto


Encontré esta información (originalmente de Kristinn Örn Sigurðsson) para resolver mi problema:

Para matarlo con -9, tendrá que enumerar todos los procesos de manage.py en ejecución, por ejemplo:

ps aux | grep -i manage

Obtendrás un resultado similar si has comenzado en muchos puertos:

14770 8264 0.0 1.9 546948 40904 ? S Sep19 0:00 /usr/local/bin/python manage.py runserver 0.0.0.0:8006 14770 15215 0.0 2.7 536708 56420 ? S Sep13 0:00 /usr/local/bin/python manage.py runserver 0.0.0.0:8001 14770 30144 0.0 2.1 612488 44912 ? S Sep18 0:00 /usr/local/bin/python manage.py runserver 0.0.0.0:8000 14770 30282 0.0 1.9 678024 40104 ? S Sep18 0:00 /usr/local/bin/python manage.py runserver 0.0.0.0:8002 14770 30592 0.0 2.1 678024 45008 ? S Sep18 0:00 /usr/local/bin/python manage.py runserver 0.0.0.0:8003 14770 30743 0.0 2.1 678024 45044 ? S Sep18 0:00 /usr/local/bin/python manage.py runserver 0.0.0.0:8004

Luego tendrá que seleccionar el pid (que es el segundo número a la izquierda) para el proceso manage.py correcto (python manage.py runserver ... etc) y hacer:

kill -9 pid

Para el ejemplo anterior, si quisiera liberar el puerto 8000, haría:

kill -9 30144


Escriba fg en el terminal para mostrar la tarea de fondo al primer plano.

Presione Ctrl + C para cerrar / detener el servidor en ejecución.


No desea simplemente aumentar el número de puerto al reiniciar un servidor Django. Esto dará como resultado tener múltiples instancias del servidor Django ejecutándose simultáneamente. Una mejor solución es matar la instancia actual y comenzar una nueva instancia.

Para hacer esto, tienes múltiples opciones. El más fácil es

Python2: $ killall -9 python

Python3: $ killall -9 python3

Si por alguna razón, esto no funciona, puedes hacer

$ kill <pid> donde <pid> es la identificación del proceso encontrada desde un simple $ ps aux | grep python $ ps aux | grep python


No, él no es un idiota chicos. Lo mismo me pasa a mí. Aparentemente es un error con el proceso UUID de python que continúa ejecutándose mucho después de que el servidor django se cierre, lo que ata el puerto.


Recibirá ese mensaje porque el servidor ya se está ejecutando (posiblemente en segundo plano). Asegúrate de matar el proceso (ponlo en primer plano y presiona ctrl-c) para detener el proceso.


Repost desde https://.com/a/27138521/1467342 :

Puede usar este script en lugar de ./manage.py runserver . Lo puse en scripts/runserver.sh .

#!/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


Si el comando ps aux (según la respuesta de Meilo) no muestra el proceso que quería matar, pero muestra el puerto activo en netstat -np | grep 8004 netstat -np | grep 8004 actividad de la red netstat -np | grep 8004 , pruebe este comando (trabajó en Ubuntu).

sudo fuser -k 8004/tcp

donde como, 8004 es el número de puerto que desea cerrar. Esto debería matar a todos los procesos asociados con el puerto 8004.


Si el número de puerto que estás intentando es 8001, utiliza este comando

sudo fuser -k 8001/tcp


Sucedió tan a menudo que escribí un alias para matar el proceso con python en el nombre (cuidado si tienes otros procesos similares). Ahora solo corro (sin Ubuntu)

kill $(ps | grep "python" | awk "{print $1}")

Incluso puede agregar python manage.py runserver ... al mismo alias para que pueda reiniciar con dos teclas.



fuser -k 8000/tcp

Ejecutar en la terminal funciona en ubutu. 8000 es el puerto.


netstat -ntlp

Vea mi respuesta completa aquí. https://.com/a/34824239/5215825


netstat -tulpn |grep 8000|awk ''{print $7}''|cut -d/ -f 1|xargs kill


sudo lsof -t -i tcp:8000 | xargs kill -9

Si desea liberar 8000 puertos que copiar el comando y pegar en su cmd, le pedirá sudo password. Y entonces eres bueno para ir.