declarando dependências em upstart

3

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:

  1. 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.

  2. 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.)

    
por ben w 14.03.2013 / 19:52

0 respostas