Existe uma maneira de atribuir dinamicamente variáveis de ambiente em um arquivo de unidade de serviço systemd?
Temos uma máquina com 4 GPUs e queremos ativar várias instâncias de um determinado serviço por GPU. Por exemplo:
- 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
- ad nauseam
Portanto, 1: 1, 2: 1 etc. são efetivamente o% i no arquivo da unidade de serviço.
Para que o serviço se ligue a uma GPU específica, o executável do serviço verifica uma determinada variável de ambiente, por exemplo:
USE_GPU=4
Existe uma maneira de eu levar% i dentro do arquivo da unidade de serviço e executá-lo através de alguma função (shell) para derivar o número da GPU e, em seguida, posso definir a variável de ambiente USE_GPU de acordo?
Mais importante, eu não quero o trabalho de escrever vários /etc/systemd/system/gpu_service@x:y.service/local.conf
arquivos, apenas para poder gerar mais instâncias.