Esiste un modo per assegnare dinamicamente le variabili di ambiente in un file di unità di servizio systemd?
Abbiamo una macchina con 4 GPU e vogliamo creare più istanze di un determinato servizio per GPU. Per esempio:
- 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
- Fino alla nausea
Quindi 1: 1, 2: 1, ecc. Sono effettivamente% i nel file dell'unità di servizio.
Affinché il servizio si associ a una determinata GPU, l'eseguibile del servizio controlla una determinata variabile d'ambiente, ad esempio:
USE_GPU=4
Esiste un modo in cui posso prendere% i all'interno del file dell'unità di servizio ed eseguirlo tramite alcune funzioni (shell) per derivare il numero GPU, e quindi posso impostare la variabile d'ambiente USE_GPU di conseguenza?
/etc/systemd/system/gpu_service@x:y.service/local.conf
Ancora più importante, non voglio il fastidio di scrivere più file solo per poter girare più istanze.