sesion - ¿Cómo mantengo mi servidor Django funcionando incluso después de cerrar mi sesión ssh?
uso de nohup en linux (3)
Descubrí cómo ejecutar mi aplicación Django a través de sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80
. Sin embargo, después de salir de la terminal, el servidor deja de funcionar.
Intenté ejecutar este proceso en segundo plano, pero el servidor se apaga rápidamente después de ejecutar sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &
.
¿Cómo mantengo mi aplicación Django en ejecución incluso después de salir de mi sesión ssh en el terminal?
PD: disculpa si esta pregunta te parece elemental. Dicha estupidez se produce cuando un programador de javascript de front-end debe convertirse en un administrador de servidor en velocidad de cuello.
Conoce la screen .
Conectar a través de ssh, pantalla de inicio. Esto abre un emulador de consola virtual sobre el proporcionado por ssh. Inicie su servidor allí.
Luego presione Ctrl-a, luego d. Esto separa la sesión de pantalla, manteniéndola funcionando en segundo plano.
Para [R] adjuntarlo a él, use screen -r.
Si la pantalla no está instalada y no puede instalarla, también puede iniciar una aplicación en segundo plano agregando un & al comando, como lo intentó. Pero no debes cerrar la ventana del terminal entonces; simplemente desconecte, con el comando bash exit, o Ctrl-d.
La ventaja de la pantalla es que aún puede leer la salida del servidor, en caso de que haya un error o algo así.
La pantalla es una herramienta realmente poderosa, con muchos más comandos. Puede agregar una nueva ventana virtual con Ctrl-a, luego c (para Crear); cambiar a través de las ventanas con Ctrl-a, luego n (siguiente) o p (anterior), ...
Pero necesitas que se instale para usarlo. Ya que parece que tienes acceso de root, esto no debería ser un problema.
EDITAR: tmux es otra gran solución para el mismo caso de uso.
Use la screen
para crear una nueva ventana virtual y ejecute el servidor allí.
$ screen
$ python manage.py runserver
Verás que el servidor Django ha comenzado a ejecutarse.
Ahora presione Ctrl+A
y luego presione la tecla D
para separarse de esa pantalla. Dirá:
$ [detached from ###.pts-0.hostname]
Ahora puede cerrar la sesión de forma segura desde su terminal, volver a iniciar sesión en su terminal, hacer otros trucos de codificación en otros directorios, salir de vacaciones, hacer lo que quiera.
Para volver a la pantalla que ha separado,
$ screen -r
Para matar el servidor django ahora, simplemente presione Ctrl+C
como lo hubiera hecho normalmente.
Para terminate
esta pantalla actual en lugar de detaching
de esta pantalla, use Ctrl+D
Dirá:
$ [screen is terminating]
$
Utilice nohup. Cambie su comando de la siguiente manera:
nohup sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &