Existe-t-il un moyen d'affecter dynamiquement des variables d'environnement dans un fichier d'unité de service systemd?
Nous avons une machine qui possède 4 GPU, et nous voulons faire tourner plusieurs instances d'un certain service par GPU. Par exemple:
- 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
- à satiété
Ainsi, les 1: 1, 2: 1, etc. sont effectivement le% i dans le fichier d'unité de service.
Pour que le service se lie à un GPU particulier, l'exécutable du service vérifie une certaine variable d'environnement, par exemple:
USE_GPU=4
Existe-t-il un moyen de prendre% i dans le fichier d'unité de service et de l'exécuter via une fonction (shell) pour dériver le numéro de GPU, puis je peux définir la variable d'environnement USE_GPU en conséquence?
Plus important encore, je ne veux pas les tracas de l'écriture de plusieurs /etc/systemd/system/gpu_service@x:y.service/local.conf
fichiers juste pour pouvoir faire tourner plus d'instances.