2009-07-27 13 views
43

¿Cómo puedo hacer permanente el servidor de desarrollo de django? Para que no se detenga cuando salga del caparazón.Django runserver permanent

Gracias

+5

Espero que no esté pidiendo este uso en un servidor de producción. Te llevará al mal solo si lo eres. – wlashell

+1

Se supone que solo tienes el shell abierto cuando estás desarrollando. ¡Esto NO es para producción! – Soviut

+5

Y para beta testers? – panchicore

Respuesta

42

Si está en Linux/Unix utilizan el comando "nohup".

nohup manage.py runserver & 

Luego de recuperarlo, utilice el comando fg:

fg 

Gracias a: Xiong Chiamiov

+1

Luego, para recuperarlo, use el comando fg. –

+0

Esto no le permitirá salir del shell ya que se ejecutará un trabajo. ¿Derecha? –

+1

@ Adam N. Podrá salir del shell, el nohup es para "no hangup", seguirá ejecutando el trabajo después de salir del shell. – MikeN

50

otra manera fácil de hacer esto es ejecutar:

[[email protected]]$screen 
[[email protected]]$python manage.py runserver 0.0.0.0:8000 

Ahora presione Ctrl+A y luego presione d para salir de esta pantalla.

Esto crea el servidor en una pantalla y luego lo separa. De esta manera, simplemente puede regresar y escribir:

[[email protected]]$screen -r 

y puede tomar el control del servidor nuevamente y ver qué está pasando.

+1

¿Se puede cerrar la sesión y volver a la pantalla? –

+0

@ Adamsonel Sí, si no finaliza explícitamente una sesión de pantalla, seguirá ejecutándose incluso después de un cierre de sesión. – 0sh

+1

Un problema con esta solución es que ejecutar el servidor inicia la consola del servidor y uno no puede proporcionar comandos al terminal, por lo tanto no puede ejecutar la pantalla. El método – Freestyle076

2

crear un archivo con este, ejemplo /tmp/screendjango:

screen python manage.py runserver 

y luego pones:

screen -dmS django -c /tmp/screendjango 

para conectar la sesión que puso

screen -d -r django. 
+1

Creo que esa es la forma más complicada de usar la pantalla, nunca. –

0

En Windows, ejecute

pythonw.exe manage.py runserver 
0

Estoy a punto de hacer esto yo mismo. El escenario es que soy un prototipo rápido para un cliente y ellos necesitan ver cómo se ven las cosas. No habrá nunca más de 2-3 personas en este a la vez, pero yo no desee configurar Apache o el sistema le reconozca.

sudo ./manage.py runserver 192.168.1.94:80 [run this on port 80 so a normal business user can see it] 
ctrl+z [to suspend the job (same thing as appending & to the above command but then I don't need to deal with entering the sudo password on the command line)] 
bg %1 [puts the job in the background] 
jobs [just to see what's going on] 
exit [exit the session] 
22

Al igual que la pantalla utilización Travis says--. Si aún no lo tiene instalado, vaya a buscarlo:

sudo apt-get install screen 
screen 

Hit enter. Ahora es como si estuvieras en una ventana de terminal diferente.

inicio que servidor con:

python manage.py runserver 0.0.0.0:8000 

Ahora se está ejecutando el servidor y desea volver a su primera pantalla, mientras que dejar la aplicación Django continuará funcionando. La pantalla tiene una buena función incorporada para eso.Para volver a su principal tipo de terminal:

ctrl+a d 

A partir de ahí, se puede volver a la pantalla de Django escribiendo:

screen -r 

Si tiene varias pantallas abiertas se puede llegar a la correcta por es 4-5 dígitos del número de identificación:

screen -r 1333 

Y las páginas del manual son bastante buenos:

man screen 
+0

Estoy muy interesado en su solución. Como uso CentOS, tuve que usar 'pipl install screen'. La instalación fue un éxito, pero luego escribí 'screen' y get -bash: screen: command not found. ¿Algunas ideas? Gracias – Dmitry

+1

@dmitrymar aunque haya instalado la pantalla correctamente, parece que no está en su RUTA. Deberá averiguar dónde lo instaló pipl y asegurarse de que el directorio en el que se instaló esté en la RUTA. Marque 'echo $ PATH' para ver cuál es la ruta actual. Y 'qué pantalla' para verificar que su caparazón lo ve en algún lugar de la ruta. – kelorek

9
on Ubuntu run:>./manage.py runserver 0.0.0.0:8000 > /dev/null 2>&1 & 

>exit 
+0

+1 esto es simple y puedo confirmar que también funciona en centos (y no puedo pensar en ninguna buena razón para que sea específico de la plataforma, dado que estás en un sistema Unix con bash) – cderwin

+0

Gracias. ¡¡¡Funciona genial!!! – thedp

Cuestiones relacionadas