Red Hat Training

A Red Hat training course is available for RHEL 8

3.5.6. Trabajar con unidades instanciadas

Es posible instanciar múltiples unidades desde un único archivo de configuración de plantilla en tiempo de ejecución. El carácter "@" se utiliza para marcar la plantilla y asociar las unidades con ella. Las unidades instanciadas pueden iniciarse desde otro archivo de unidades (utilizando las opciones Requires o Wants ), o con el comando systemctl start. Las unidades de servicio instanciadas se nombran de la siguiente manera:

template_name@instance_name.service

Donde template_name representa el nombre del archivo de configuración de la plantilla. Sustituya instance_name por el nombre de la instancia de la unidad. Varias instancias pueden apuntar al mismo archivo de plantilla con opciones de configuración comunes para todas las instancias de la unidad. El nombre de la unidad de plantilla tiene la forma de:

unit_name@.service

Por ejemplo, la siguiente configuración de Wants en un archivo de unidad:

Wants=getty@ttyA.service getty@ttyB.service

primero hace que systemd busque las unidades de servicio dadas. Si no se encuentran tales unidades, la parte entre "@" y el sufijo de tipo se ignora y systemd busca el archivo getty@.service, lee la configuración de éste y arranca los servicios.

Por ejemplo, la plantilla getty@.service contiene las siguientes directivas:

[Unit]
Description=Getty on %I
…​
[Service]
ExecStart=-/sbin/agetty --noclear %I $TERM
…​

Cuando se instancian getty@ttyA.service y getty@ttyB.service desde la plantilla anterior, Description= se resuelve como Getty on ttyA y Getty on ttyB.

3.5.6.1. Especificaciones importantes de las unidades

Los caracteres comodín, denominados unit specifiers, pueden utilizarse en cualquier archivo de configuración de unidades. Los especificadores de unidad sustituyen ciertos parámetros de la unidad y se interpretan en tiempo de ejecución. Tabla 3.13, “Especificaciones importantes de las unidades” enumera los especificadores de unidad que son particularmente útiles para las unidades de plantilla.

Tabla 3.13. Especificaciones importantes de las unidades

Especificador de unidadesSignificadoDescripción

%n

Nombre completo de la unidad

Representa el nombre completo de la unidad, incluido el sufijo de tipo. %N tiene el mismo significado, pero también sustituye los caracteres prohibidos por códigos ASCII.

%p

Nombre del prefijo

Representa un nombre de unidad con el sufijo de tipo eliminado. Para las unidades instanciadas, %p representa la parte del nombre de la unidad antes del carácter "@".

%i

Nombre de la instancia

Es la parte del nombre de la unidad instanciada entre el carácter "@" y el sufijo de tipo. %I tiene el mismo significado pero también sustituye a los caracteres prohibidos para los códigos ASCII.

%H

Nombre del anfitrión

Representa el nombre de host del sistema en ejecución en el momento en que se carga la configuración de la unidad.

%t

Directorio de tiempo de ejecución

Representa el directorio de tiempo de ejecución, que es /run para el usuario root, o el valor de la variable XDG_RUNTIME_DIR para los usuarios sin privilegios.

Para obtener una lista completa de especificadores de unidades, consulte la página del manual systemd.unit(5).