Como definir diferentes sinais de parada / reinicialização com upstart

8

Estou começando a converter todos os nossos sistemas para usar o upstart para gerenciar nossos vários processos de aplicativos. Uma coisa que estou constantemente perdendo é a capacidade de enviar um sinal diferente para o processo em stop ou restart events.

Por exemplo, executamos nossos processos da web com Unicorn . O Unicorn tem uma excelente API de manipulação de sinal. Quando eu quero graciosamente recarregar o processo, eu envio ao mestre pid um sinal USR2. Para desligá-los graciosamente, envio um comando QUIT. TERM (sinal de parada padrão do upstart) constitui um desligamento imediato.

Outro exemplo é o Resque . Para desligar um trabalhador, eu envio o sinal QUIT. O sinal TERM novamente causa o desligamento imediato, seja o filho do trabalhador bifurcado ou não.

O upstart suporta sinais personalizados? Eu não consigo encontrá-lo em qualquer lugar, o que me preocupa que eu esteja usando a "ferramenta errada para o trabalho".

    
por localshred 13.01.2012 / 21:40

2 respostas

4

O Ubuntu 10.04 vem com a versão upstart 0.6.6, que possui os parâmetros kill signal e kill timeout que configuraria valores relevantes de sinal e tempo limite. O sinal "reload" é codificado para SIGHUP .

As versões mais recentes de upstart apresentam o parâmetro reload signal - veja outras respostas a essa pergunta para mais detalhes.

    
por 13.01.2012 / 23:15
6

A partir da versão v1.10.0, você pode definir um "sinal de recarga".

link

Esta versão está disponível no Ubuntu a partir da v13.10 ... Eu usei estas instruções para atualizar minha instância do ec2:

link

Eu uso rails + puma e faço graciosos recarregamentos com esta diretiva no meu arquivo /etc/init/app-1.conf:

reload signal SIGUSR2
    
por 13.10.2013 / 13:05