Eu tenho um script inicial para iniciar um aplicativo nodejs personalizado. O aplicativo depende do couchdb e do elasticsearch. couchdb e elasticsearch fornecem scripts init.d para iniciá-los / pará-los. É possível dizer ao meu script inicial que couchdb e elasticsearch são dependências? Eu tentei isso no meu script inicial, mas ele não parece funcionar:
start on (iniciado couchdb e elasticsearch)
Obrigado!
Respostas:
A única coisa que sei que funcionaria é criar (ou procurar e instalar) scripts iniciados para elasticsearch e couchdb, para que você possa usar a opção "iniciar".
fonte
Eu tinha a mesma pergunta e também encontrei uma resposta diferente . O autor lista 4 opções para fazer isso, das quais eu gosto mais da primeira:
Use
initclt emit myservice-started
para sinalizar a conclusão da inicialização do seu serviço dependente. Na resposta vinculada, sugere-se adicionar essa linha ao final doinit.d
script do serviço de dependência , mas eu prefiro um método diferente. Eu gosto de criar um novoinid.d
script chamadomyservice-started
que contém apenas umastart
seção. Usando o estilo de comentário apropriado no cabeçalho do arquivo, declaro que ele depende$myservice
para ser iniciado. Nastart
seção, eu falo sobremyservice
como começar. Você pode instalá-lo comupdate-rc.d
.Eu gosto desta solução porque não é intrusiva; se uma atualização alterar qualquer um dos
init.d
scripts existentes , não afetará esses scripts adicionais. Mas lembre-se de que são necessárias alterações nos scripts iniciais .Pode ser assim:
Seu script inicial que está aguardando o myservice pode ouvir o
myservice-started
evento:fonte