
Tengo un servidor Python basado en Django y apio. Cada vez que la computadora se reinicia, apache2 se inicia, por lo que mi servidor funciona, PERO tengo que reiniciar el apio manualmente (yendo al directorio de mi proyecto y ejecutando "python Manage.py celeryd"). ¿Cuál es la solución correcta para la producción? Quiero decir, ¿existe la posibilidad de iniciar el apio como demonio?
Aquíhttp://github.com/ask/celery/tree/master/contrib/debian/init.d/Encontré dos scripts que parecen estar en /etc/init.d/ como el script apache2 que inicia apache2. Pero los puse en /etc/init.d/ y como veo nada cambia.
Respuesta1
Puede vincular manualmente los scripts /etc/init.d desde /etc/rc5.d/ para que se inicien cuando lo haga su GUI. Y necesitarías otro para apagarlo.
Pero Debian tiene un método más avanzado (y mejor). Esto controla lo que se vincula desde los scripts de inicio de niveles de ejecución individuales. Para eso se utiliza "BEGIN INIT INFO" en la sección de comentarios en la parte superior de esos scripts.
Si realmente estás usando Debian, en lugar de simplemente usar scripts de uno de sus recursos, intenta usar
valores predeterminados de update-rc.d apiobeat valores predeterminados de update-rc.d apio
Respuesta2
Celery envía una configuración de muestra parasupervisor, un demonio que se encarga de las tareas y demonios relacionados con el proyecto. Debian Unstable ya tiene disponible una versión empaquetada de supervisor. Si lo instala, solo necesitará modificar la configuración de muestra de apio (que se encuentra en contrib/supervisor) y colocarla en /etc/supervisor/conf.d/.
Respuesta3
No mencionaste qué distribución estás usando. Es importante saberlo porque los scripts de inicio varían bastante de una distribución a otra. Suponiendo que estás trabajando con Redhat/CentOS...
Lo ideal sería localizar un script init.d. Esta es la mejor opción porque también se usa para apagar de forma segura su demonio, recargar su configuración, reiniciarlo, etc. Sin embargo, si desea una solución rápida y fácil, simplemente coloque " python manage.py celeryd
" al final de su /etc/rc.local
archivo.
Editar: veo por el nombre de la ruta en tu ejemplo que estás usando Debian. No estoy seguro de si Debian tiene un archivo /etc/rc.local. Pero dejaré esta respuesta en caso de que sea así, o en caso de que esta información sea útil para alguien más.