reiniciar meu servidor de aplicativos automaticamente por meio do script upstart

1

Eu tenho uma máquina Ubuntu 12.04 na qual estou executando meu servidor de aplicativos C ++, o qual estou controlando através do script upstart. O que significa que sempre que o meu servidor de aplicativos trava meu script upstart irá reiniciá-los automaticamente e sempre que a minha máquina Ubuntu for reiniciada / reiniciado meu script upstart reiniciará o meu servidor de aplicativos novamente.

Abaixo está meu script inicial:

start on runlevel [2345]
stop on runlevel [016]

chdir /opt/process/process_server
respawn

post-start script
    echo "App server started at 'date +"%F %T"' on 'hostname -f'" | mailx -r "[email protected]" -s "Process Started" "[email protected]"
end script

post-stop script
  sleep 30
end script

limit core unlimited unlimited
limit nofile 8092 8092
setuid caprti
exec ./process_server --config_file=../config/process.init

Agora, o mais estranho é que eu vi isso pelo menos duas vezes - Minha máquina do Ubuntu foi reiniciada e eu não sei como e quem fez isso, mas meu servidor de aplicativos não foi reiniciado e eu não sei por quê? Eu testei isso várias vezes sozinho reiniciando a mesma caixa digitando "sudo reboot" e sempre que a máquina voltar, vejo meu servidor de aplicativos ser reiniciado automaticamente.

Em que condições durante a reinicialização da minha caixa Ubuntu não resultará em meu servidor de aplicativos ser reiniciado a partir do meu script upstart acima? Existe alguma coisa que eu estou perdendo no meu script Upstart?

Além disso, como posso verificar se meu script do Upstart tentou reiniciar meu servidor de aplicativos durante a última reinicialização, mas ele falhou por algum motivo, se foi isso que aconteceu com o meu para essas duas vezes?

    
por david 16.07.2015 / 19:49

2 respostas

1

Eu tenho algumas notas ou dicas que podem ajudar:

  • A sub-rotina respawn sem especificar explicitamente limites tem padrões.

      

    6,28 respawn

         

    Observe ainda que, se o trabalho não especificar a sub-rotina respawn limit   bem como a estrofe respawn , o trabalho terá o respawn padrão   limite aplicado (consulte respawn limit ).

         

    limite de respawn de 6,29

         

    A reativação está sujeita a um limite. Se o trabalho é respawned mais de    COUNT vezes em segundos de INTERVALO , será considerado como tendo   problemas mais profundos e será interrompido. O COUNT padrão é 10 . Padrão    INTERVALO é 5 segundos.

    Uso:

    respawn 
    respawn limit unlimited
    
  • Verifique seus logs como em como depurar scripts de inicialização? . Você pode criar seus próprios registros personalizados para rastrear problemas mais específicos. Use pre-start , post-start & amp; post-stop scripts e verifique variáveis como RESULT e PROCESS , consulte Upstart: report (email, log) no respawn e falha

  • start on runlevel [2345] !!! Tem certeza de que o nível de execução é a única condição necessária para iniciar este serviço? exemplos: esse daemon c ++ precisa de filesystem , networking .. Veja Quais eventos são disponível para Upstart?

    Alguém usou start on stopped rc para evitar procurar cada evento, fonte: Iniciar jackd com prioridade em tempo real com upstart

Referências:

por user.dz 22.07.2015 / 12:22
1

Depuração

  

Por padrão, registros de armazenamento do sistema de arquivos upstart em /var/log/upstart .   geralmente, armazena com nome_do_upstartfile.log em   %código%. Olhe para /var/log/upstart . Onde   file.log é o log do seu arquivo init /var/log/upstart/file.log . você pode fácil   identifique o que está faltando no script inicial.

verifique a sintaxe do arquivo upstart %código% ou com mais modos de depuração /etc/init/file.conf

use init-checkconf /etc/init/file.conf ou init-checkconf -d /etc/init/file.conf em vez de start on local-filesystems . você está executando um comando que precisa de um sistema de arquivos local e se a rede também não for incluída, adicione rede ou verifique outro requisito. ainda problema então postar log ou erro.

    
por pl_rock 23.07.2015 / 20:30