Como, no Ubuntu, rodar como serviço/executar sob supervisão

Como, no Ubuntu, rodar como serviço/executar sob supervisão

Recebi 3 clusters. Um é de Kafka, um é de tempestade e o outro é de ZooKeeper. Preciso fazer com que os serviços iniciem e quando parados, iniciem novamente conforme descrito noGuia de administração do Zookeeper.

OS for every machine => Ubuntu-trusty 14.04
Platform => Running in Amazon EC2 

Então, para recapitular, preciso poder iniciar o respectivo serviço na inicialização. Se o serviço for iniciado, preciso que ele seja reiniciado. Preciso fazer isso para Storm, Kafka e Zookeeper. E preciso que a resposta seja simples e direta. Outra maneira de fazer esta pergunta: Qual é a maneira mais fácil de atingir meus objetivos?

Responder1

O mecanismo de gerenciamento de serviço para Ubuntu é o Upstart. O guia Upstart está aqui: http://upstart.ubuntu.com/cookbook/

Não é tão difícil seguir em frente. Existem muitos exemplos que você pode usar.

Acontece (do nosso bate-papo vinculado nos comentários) que @MassSql possui serviços em segundo plano (e presumivelmente monitoram/reiniciam se morrerem). Sendo esse o caso, ele pode usar o mecanismo de script RC mais simples/legado (que é implementado pelo Upstart, mas uma interface muito mais simples para tarefas mais simples de apenas iniciar as coisas na inicialização e interrompê-las no desligamento). Então aqui está essa abordagem:

  1. Vá para /etc/init.d e faça uma cópia do dns-clean (renomeie-o como desejar).
  2. Edite o arquivo. Altere a INIT INFOseção alterando as descrições e limpando os campos Required-Starte Required-Stop. Crie um novo nome para Provides. (basicamente mudar tudo, menos Default-Start)
  3. Exclua estas linhas:

teste -f /usr/sbin/pppconfig || saída 0

mkdir /var/run/pppconfig >/dev/null 2>&1 || verdadeiro

teste -f /etc/ppp/ip-down.d/0dns-down || saída 0

  1. Altere as linhas do start)bloco para executar seus scripts. Deixe o ;;no final.

  2. Execute update-rc.d foobar enableonde foobarestá o nome do seu serviço (deve ser o nome do arquivo e também o Provides, pelo menos por convenção).

Reinicie seu sistema e teste.

informação relacionada