¿Hay alguna manera de asignar dinámicamente variables de entorno en un archivo de unidad de servicio systemd?
Tenemos una máquina que tiene 4 GPU, y queremos activar múltiples instancias de un determinado servicio por GPU. P.ej:
- gpu_service @ 1: 1.service
- gpu_service @ 2: 1.service
- gpu_service @ 3: 1.service
- gpu_service @ 4: 1.service
- gpu_service @ 1: 2.service
- gpu_service @ 2: 2.service
- gpu_service @ 3: 2.service
- gpu_service @ 4: 2.service
- hasta el hastío
Entonces, 1: 1, 2: 1, etc. son efectivamente el% i en el archivo de la unidad de servicio.
Para que el servicio se una a una GPU particular, el ejecutable del servicio verifica una determinada variable de entorno, por ejemplo:
USE_GPU=4
¿Hay alguna manera de tomar% i dentro del archivo de la unidad de servicio y ejecutarlo a través de alguna función (shell) para obtener el número de GPU, y luego puedo configurar la variable de entorno USE_GPU en consecuencia?
Lo que es más importante, no quiero la molestia de escribir varios /etc/systemd/system/gpu_service@x:y.service/local.conf
archivos solo para poder activar más instancias.