Como você diz ao systemd que um alvo está satisfeito com um dos requisitos?

4

Como você diz systemd que um requisito é satisfeito com uma de qualquer instância de uma lista de instâncias?

Digamos que eu tenha um destino chamado main_target.target e um modelo de serviço chamado [email protected] . Durante a operação normal, as únicas instâncias de [email protected] que existem são:

  • serv@ex1
  • serv@ex2
  • serv@ex3

Somente uma dessas instâncias existe a qualquer momento, e eu quero dizer a main_target.target que está satisfeita sempre que qualquer das três instâncias exista.

Intuitivamente, gostaria de algo semelhante à tag require_any do SMF, mas não consegui encontrar nada assim em nenhuma das documentações systemd .

Nota 1: Sei que posso tornar serv@ex1 , serv@ex2 , serv@ex3 e mutuamente exclusivos com a diretiva Conflicts= .

Observação 2: também sei que posso usar as diretivas Before= e After= para classificar as três instâncias para começar em uma determinada ordem.

    
por Dennis Dragonbain 30.09.2016 / 17:29

1 resposta

0

Como você mencionou, você pode tornar os serviços mutuamente exclusivos com a diretiva Conflicts= . Os destinos systemd são apenas um método para agrupar unidades, eles não têm opções de dependência complexas.

systemd.target

A unit configuration file whose name ends in ".target" encodes information about a target unit of systemd, which is used for grouping units and as well-known synchronization points during start-up.

This unit type has no specific options. See systemd.unit(5) for the common options of all unit configuration files. The common configuration items are configured in the generic [Unit] and [Install] sections. A separate [Target] section does not exist, since no target-specific options may be configured.

systemd.unit para referência.

Você só pode usar diretivas incluídas em systemd.unit e não inclui um método para iniciar apenas um dos vários serviços.

    
por 27.04.2017 / 12:31

Tags