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

1

Recebi 3 clusters. Uma é de Kafka, uma é de tempestade e outra é de ZooKeeper. Preciso fazer com que os serviços sejam iniciados e, quando forem interrompidos, inicie novamente, conforme descrito no guia de administração do Zookeeper .

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

Então, para recapitular, eu preciso ser capaz de iniciar o respectivo serviço na inicialização. Se o serviço iniciar, eu preciso que ele seja reiniciado. Eu 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 alcançar meus objetivos?

    
por MaasSql 06.01.2015 / 20:02

1 resposta

2

O mecanismo de gerenciamento de serviços para o Ubuntu é o Upstart. O guia Upstart está aqui: link

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

Acontece (a partir do nosso chat ligado nos comentários) que o @MassSql tem serviços que antecedem (e presumivelmente monitoram / reiniciam a si mesmos se morrerem). Dado 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 coisas na inicialização e pará-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 como você como).
  2. Edite o arquivo. Altere a seção INIT INFO alterando as descrições e limpando os campos Required-Start e Required-Stop . Faça um novo nome para Provides . (basicamente mude tudo, mas Default-Start )
  3. Exclua estas linhas:

test -f /usr/sbin/pppconfig || exit 0

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

test -f /etc/ppp/ip-down.d/0dns-down || exit 0

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

  2. Execute update-rc.d foobar enable onde foobar é o nome do seu serviço (deve ser o nome do arquivo, assim como o Provides , pelo menos por convenção).

Reinicie seu sistema e teste.

    
por 06.01.2015 / 20:11