"Reaparecendo muito rápido, parado". Como desativar o UPSTART por 5 minutos?

11

Antigamente, o daemon init costumava desativar as tarefas que reapareciam muito rápido.

Descobri para o meu perigo que a UPSTART apenas os interrompe. para sempre.

Encontrei os controles COUNT e INTERVAL para quando interromper um trabalho que está reaparecendo rapidamente, mas não consigo encontrar como reiniciar esse trabalho após um tempo de espera especificado.

  • Isto é para um servidor remoto que deve se conectar via ssh para que eu possa entrar de volta nele. Mas ele regularmente apresenta problemas de conexão e o trabalho que executa a conexão ssh está acabando! Eu tolamente esperava que o iniciante mantivesse o trabalho funcionando.

Existe uma maneira, ou eu preciso fazer algo como executar um trabalho cron para verificar se ele está sendo executado e se não o reinicia?

Keith
fonte

Respostas:

10

O Upstart permite uma suspensão pós-parada para atrasar o reinício de um trabalho. De http://upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job

post-stop exec sleep 5

Agora, quando o trabalho falhar, ele aguardará 5 segundos antes de tentar se conectar novamente. Combine isso com a definição do reaparecimento para algo como 10 vezes em 30 segundos e ele deve tentar reaparecer para sempre (tentaria apenas 7 vezes em 30 segundos, para que não seja expulso do respawn)

tgm4883
fonte
Sim, essa é uma boa solução alternativa, suponho. Eu me pergunto, porém, se o iniciante deve ter a possibilidade de especificar um tempo de espera antes de tentar executar o trabalho novamente. Eu realmente não gosto da ideia de apenas parar os trabalhos mortos. Eu preferia muito a maneira como o init desabilitava um trabalho por cinco minutos.
Keith
Eu acho que o caso de uso que você está falando é bastante baixo. Se um trabalho está falhando, há uma razão para ele, portanto, ele deve ser corrigido. A maioria das pessoas não gostaria que o trabalho continuasse tentando iniciar e falhar, pois isso poderia limpar registros com informações valiosas ou ter outros resultados catastróficos. Acho que você está usando o iniciante para algo para o qual não foi projetado, portanto, métodos padrão para reiniciá-lo podem estar fora de questão. Dito isto, a conexão de rede nessa máquina tenta se reconectar quando a conexão morre? Nesse caso, você poderá iniciar seu trabalho na rede.
tgm4883
1
Tenho certeza de que você está certo de que isso está longe de ser o caso da "maioria das pessoas". Como venho hackeando slackware e sistemas personalizados há 20 anos, muitos desses conceitos são estranhos para mim. Você poderia me indicar a direção certa para personalizar o início / reinício da rede Ubuntu? Deus, isso me faz sentir velha e sem contato. Eu poderia fazê-lo no slackware em 10 segundos.
Keith
1
isso é coberto no livro de receitas; eles recomendam o uso de uma estrofe pós-parada: upstart.ubuntu.com/cookbook/#id379
jcomeau_ictx
1
Obrigado @jcomeau_ictx, é exatamente isso, acho que a resposta deve ser atualizada com o link upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job . Também há um ticket e um patch aceitos para a solicitação de Keith bugs.launchpad.net/upstart/+bug/252997 com tempo de espera para reaparecer antes de tentar novamente.
Andre Miras 15/01