plot title python
¿Cuál es la forma correcta de dejar gunicorn corriendo? (8)
Quiero hacer un despliegue de Flask + Nginx + Gunicorn. Tengo la configuración y ejecución de Nginx y ejecuto gunicorn como se describe en los documentos:
gunicorn app:app
Pero cuando me desconecto del servidor, ¿sale el proceso de gunicorn? ¿Cuál es la forma correcta de asegurarse de que se mantenga en ejecución para que Nginx se conecte y se reinicie si se bloquea?
Ejecutando hug api como este.
--daemon es mantener el proceso en segundo plano.
--access-logfile para mantener el registro de solicitud
--bind = <ip>: <port> Dar IP permitirá acceder desde otros sistemas (si no se necesita proxy).
gunicorn <pyscirpt_name>:__hug_wsgi__ --name caassist -w 4 --access-logfile /var/logs/gunicorn/gunicorn_access.log --daemon --bind=<ip>:<port>
La clave a tener en cuenta es que cuando inicia el proceso desde la línea de comandos es un elemento secundario de su proceso terminal (es decir, un elemento secundario de bash
). Cuando se cierra la sesión del servidor, su proceso de bash
finaliza, al igual que todos sus hijos.
Usted querrá usar cualquier sistema que tenga instalado para administrar nginx, también administre gunicorn (desde guiones init.d
o Upstart hasta monitores de procesos de aplicación especializados como Monit, Supervisor, Bluepill, Foreman, etc.)
Me gustaría ver algo como Supervisor .
Presta atención a Sean.
Sin embargo, puedes ejecutarlo sobre la marcha de esta manera:
nohup gunicorn -c config.py </dev/null >/dev/null 2>&1
y ya no dependerá de la conexión del terminal. Podría reemplazar >/dev/null
con algo como >somelogfile
si desea guardar cualquier salida.
Pero para el uso en producción, lo mejor es integrarlo en cualquier herramienta que use para administrar procesos.
Probé la opción systemd y funcionó bien, el siguiente enlace tiene mi respuesta completa y tiene todos los pasos para invocar tu aplicación como un servicio de Gunicorn.
https://askubuntu.com/questions/930589/running-upstart-script-on-17-04/1010398#1010398
Prueba esto:
nohup gunicorn app:app &
Use la opción --daemon
mientras ejecuta gunicorn. Ejemplo:
gunicorn grand56.wsgi:application --name grand56 --workers 3 --user=root --group=root --bind=127.0.0.1:1001 --daemon
usa --daemon para el comando de enlace de gunicorn. ex:
gunicorn --bind 0.0.0.0:8001 your_project.wsgi --daemon