Falha ao usar o upstart para controlar a dependência de inicialização

2

Em um servidor eu tenho memcached e apache2 instalado, eu quero que meu apache2 APENAS possa iniciar se o memcached for iniciado, então no meu script do upstart do apache, eu adicionei a linha

De

start on runlevel [2345]

Para

start on runlevel [2345] and memcached

Eu descobri que o meu apache2 não pode ser iniciado então, alguma dica para depurar?

    
por Howard 07.11.2012 / 09:58

1 resposta

1

and memcached significa "e um evento chamado memcached é emitido". Eu acho que você quis dizer

start on runlevel [2345] and started memcached

No entanto, isso também falhará porque o evento 'runlevel 2' só será emitido uma vez, no momento da inicialização (ou sempre que você retornar do modo de usuário único). O que você provavelmente quer dizer é apenas

start on started memcached

O runlevel [2345] está implícito no fato de que o memcached só será iniciado em runlevel [2345] . No entanto, esta é também uma abordagem bastante limitada. E se você mover o memcached dessas caixas para que elas possam ser executadas em um cluster dedicado do memcached? Agora você não pode controlar a ordem de inicialização. A melhor abordagem é que seu aplicativo seja tolerante a falhas e lide com a falta do memcached normalmente.

Se isso significa alertar seu balanceador de carga para não enviar tráfego para esse nó ou simplesmente enviar um spinner ajax "aguarde" para seus usuários, isso resultará em menos páginas para seus funcionários operacionais e mais resiliência para seu aplicativo em geral.

    
por SpamapS 13.11.2012 / 02:55