Estoy empezando a convertir todos nuestros sistemas a un sistema de arranque para administrar nuestros diversos procesos de aplicación. Una cosa que me falta constantemente es la capacidad de enviar una señal diferente al proceso stop
o restart
eventos.
Por ejemplo, ejecutamos nuestros procesos web con Unicorn . Unicorn tiene una gran API de manejo de señal. Cuando quiero recargar el proceso con gracia, le envío al maestro una señal USR2. Para cerrarlos con gracia, envío un comando SALIR. TERM (señal de parada predeterminada de arranque) constituye un apagado inmediato.
Otro ejemplo es usar Resque . Para cerrar con gracia a un trabajador, le envío la señal de SALIDA. La señal TERM nuevamente causa un apagado inmediato, ya sea que el niño del trabajador esté bifurcado o no.
¿Admite el arranque compatible con señales personalizadas? Parece que no puedo encontrarlo en ningún lado, lo que me preocupa que estoy usando la "herramienta incorrecta para el trabajo".
fuente
reload signal SIGUSR2
, pero requiere la versión inicial 1.10.0.A partir del arranque v1.10.0 puede definir una "señal de recarga".
https://launchpad.net/upstart/1.x/1.10.0
Esta versión está disponible en ubuntu a partir de v13.10 ... Usé estas instrucciones para actualizar mi instancia ec2:
/ubuntu/302762/upgrading-13-04-to-13-10
Utilizo rails + puma y realizo recargas elegantes con esta directiva en mi archivo /etc/init/app-1.conf:
fuente