Parece que a maneira aceita de especificar uma dependência de serviço A
no serviço B
no upstart é trabalhar na direção de dependência reversa : fornecer serviço B
a start on starting A
stanza.
Eu gostaria de evitar isso por dois motivos:
Parece bizarro modificar o arquivo de configuração do B
quando um novo serviço que depende dele aparecer: o novo serviço deve declarar as dependências its ; B
não deveria ter que saber sobre eles.
Eu gostaria de automatizar a construção de hierarquias de serviço, procedendo topologicamente de um gráfico de dependência que já está construído e seria deselegante ter que convertê-lo em um gráfico de dependência reversa apenas para isso.
Pensei que poderia iniciar os serviços dependentes em uma sub-rotina de script pre-start
no arquivo conf, mas parece que isso não funcionará se eu também tiver setuid
e setgid
stanzas --- desde então, o script pre-start
seria executado com esse usuário / grupo.
Existe uma maneira idiomática de fazer isso (ou seja, declarar dependências em vez de dependências reversas)? Esta resposta não é o que eu quero desde que eu não t quer também ter que escrever um script de inicialização não-upstart.
(suponho start on started B
para A
funcionaria nesse caso, mas não tenho certeza se isso funcionaria se A
tivesse várias dependências: start on started B and started C
funcionaria? Se eu iniciar B
e então C
, A
obterá os dois eventos de uma só vez Também fica a lógica errada mesmo no caso de uma dependência: start on started B
diz que B
está sendo iniciado é um suficiente condição para iniciar A
. Mas eu quero dizer que B
está começando é uma condição necessária para iniciar A
, e uma condição que a ação de iniciar A
deve tornar verdade.)
Tags dependencies services upstart