Estoy intentando utilizar upstart para que supervisord se inicie automáticamente en el arranque. Mi supervisor está en un entorno virtual.
Lo configuré para que se ejecute en modo de primer plano con el parámetro -n y funciona si se inicia manualmente pero se niega a iniciarse al arrancar.
Siguiendo la guía aquí http://upstart.ubuntu.com/cookbook/#how-to-establecer-fork-count
Estoy descubriendo que el supervisor se bifurca 37 veces.
> ~/projects/bleh_app$ sudo strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf &
[1] 5662
> ~/projects/bleh_app$ ps -ef | grep strace
root 5662 5447 0 21:02 pts/0 00:00:00 sudo strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf
root 5663 5662 36 21:02 pts/0 00:00:03 strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf
bleh 5703 5447 0 21:02 pts/0 00:00:00 grep --color=auto strace
> ~/projects/bleh_app$ sudo killall -9 strace
[1]+ Exit 137 sudo strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf
> ~/projects/bleh_app$ sudo egrep "\<(fork|clone)\>\(" /tmp/strace.log | wc | awk '{print $1}'
37
Algunas preguntas:
* ¿Alguna idea de por qué no se inicia en modo frontal al arrancar?
* ¿Estoy determinando correctamente el número de tenedores?
* ¿Alguna sugerencia mejor sobre cómo empezar a supervisar con advenedizo?
Respuesta1
oh hombre...
comencé por este camino desde aquí:
Cómo iniciar supervisord automáticamente en Linux (Ubuntu)
y específicamente esta respuesta
https://serverfault.com/a/115259/60345
"Oh, increíble advenedizo para el supervisor... nooooooo problema."
no. Puede hacer que supervisord se inicie manualmente sin problemas, pero no puede hacer que se inicie automáticamente al arrancar. La depuración parece como si el supervisor comenzara pero luego se envía instantáneamente SIGTERM para suprimirse. No sé si es porque se ejecuta en primer plano.
La pregunta anterior fue originalmente para ver si podía ejecutarlo con expect fork o daemon (que nunca descubrí)
8 horas de mi vida después me encuentro con esto.
http://upstart.ubuntu.com/cookbook/#runlevels
básicamente quieres que tu archivo de configuración inicial se vea así:
description "supervisord"
start on (filesystem and static-network-up)
stop on runlevel [!2345]
respawn
exec /<path to>/supervisord -n -c /<path to>/supervisord.conf
de particular interés:
detener en el nivel de ejecución [!2345]
versus
detener en el nivel de ejecución [!345]
Quería publicar esta respuesta en el otro hilo, pero está bloqueado =(