¿Cómo se le dice a systemd que un objetivo cumple con uno de los requisitos?

¿Cómo se le dice a systemd que un objetivo cumple con uno de los requisitos?

¿Cómo se puede saber systemdque un requisito se cumple con una de cualquier instancia de una lista de instancias?

Digamos que tengo un objetivo llamado main_target.targety una plantilla de servicio llamada [email protected]. Durante el funcionamiento normal, los únicos casos de [email protected]esto que existen son:

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

Solounode esas instancias existen en un momento dado, y quiero decir main_target.targetque se cumple siempre quecualquierde las tres instancias existen.

Intuitivamente, me gustaría algo similar a la require_anyetiqueta SMF, pero no he podido encontrar nada parecido en ninguna systemddocumentación.

Nota 1: sé que puedo hacer que , serv@ex1y sean mutuamente excluyentes con la directiva.serv@ex2serv@ex3Conflicts=

Nota 2: También sé que puedo usar las directivas Before=y After=para organizar las tres instancias en niveles y comenzar en un orden determinado.

Respuesta1

Como usted menciona, puede hacer que los servicios sean mutuamente excluyentes con la Conflicts=directiva. Los systemdobjetivos son sólo un método para agrupar unidades, no tienen opciones de dependencia complejas.

systemd.objetivo

Un archivo de configuración de unidad cuyo nombre termina en ".target" codifica información sobre una unidad de destino de systemd, que se utiliza para agrupar unidades y como puntos de sincronización conocidos durante el inicio.

Este tipo de unidad no tiene opciones específicas. Consulte systemd.unit(5) para conocer las opciones comunes de todos los archivos de configuración de la unidad. Los elementos de configuración comunes se configuran en las secciones genéricas [Unidad] e [Instalación]. No existe una sección [Objetivo] separada, ya que no se pueden configurar opciones específicas del objetivo.

unidad.systemdpara referencia.

Solo puede usar directivas incluidas en systemd.unity no incluye un método para iniciar solo uno de varios servicios.

información relacionada