Cómo depurar un servicio que "falla" Upstart (supervisor, en este caso)

Cómo depurar un servicio que "falla" Upstart (supervisor, en este caso)

Estoy ejecutando Ubuntu 14.04. Tengo varios servicios configurados para ejecutarse al arrancar, uno de los cuales es supervisor. Arranco en el nivel de ejecución 2, por lo que todos los servicios /etc/rc2.d/deben iniciarse en el arranque.

/etc/rc2.d/S20supervisorejecuta el script de inicio del supervisor en /etc/init.d/supervisor, como se supone que debe hacerlo. Veo que el script se ejecuta en /var/log/boot.log. Todos los scripts que deberían ejecutarse después no lo hacen. Es como si el script del supervisor "bloqueara" a Upstart.

Si edito S20supervisoren S10supervisor, eso hace que el supervisor se ejecute primero y no se ejecute nada más. Después de esto, el supervisor funciona normalmente.

Si edito S20supervisoren s99supervisor, eso hace que el supervisor se ejecute en último lugar y todo lo demás se ejecuta. Después de esto, el supervisor funciona normalmente.

Parece que el servicio se inicia sin problemas, pero por alguna razón Upstart se bloquea y no ejecuta ningún script después del script del supervisor. ¿Por qué?

Como nota, puedo iniciar el supervisor manualmente sin problemas sudo service supervisor start, aunque con el siguiente resultado:

$ sudo service supervisor start Starting supervisor: 2017-05-20 00:14:04,435 CRIT Supervisor running as root (no user in config file) 2017-05-20 00:14:04,435 WARN Included extra file "/etc/supervisor/conf.d/graphite.conf" during parsing 2017-05-20 00:14:04,450 INFO RPC interface 'supervisor' initialized 2017-05-20 00:14:04,450 CRIT Server 'unix_http_server' running without any HTTP authentication checking 2017-05-20 00:14:04,450 INFO supervisord started with pid 4462 2017-05-20 00:14:05,455 INFO spawned: 'statsd' with pid 4465 2017-05-20 00:14:05,458 INFO spawned: 'carbon-cache' with pid 4466 2017-05-20 00:14:05,464 INFO spawned: 'graphite-webapp' with pid 4467 2017-05-20 00:14:06,635 INFO success: statsd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2017-05-20 00:14:06,635 INFO success: carbon-cache entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2017-05-20 00:14:06,635 INFO success: graphite-webapp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

Respuesta1

Supervisor se ejecuta en primer plano en lugar de en segundo plano, por lo que el script Upstart no falla: se bloquea porque el supervisor mantiene el control del hilo.

La solución será hacer que el supervisor pase a segundo plano después del inicio, pero publicaré más detalles una vez que ejecute la solución.

información relacionada