advenedizo: recuento de bifurcaciones del supervisor > 2 (no se puede hacer que el supervisor inicie en el arranque)

advenedizo: recuento de bifurcaciones del supervisor > 2 (no se puede hacer que el supervisor inicie en el arranque)

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 =(

información relacionada