Sé que systemd proporciona un mecanismo excelente para anular un archivo de unidad proporcionado por el paquete para influir en la configuración / comportamiento del servicio. Esto normalmente se realiza mediante el siguiente comando
sudo systemctl edit <unitfile>
para crear un archivo conf de anulación en
/etc/systemd/system/<unitfile.d>/
Systemd también proporciona un mecanismo separado para definir un archivo de unidad de plantilla y crear una instancia para crear unidades específicas de instancia en tiempo de ejecución. Esto requiere nombrar el archivo de plantilla como
<servicename>@.service
y luego instanciarlo como
systemctl start <servicename>@<instancename>
Ahora, tengo una situación en la que me gustaría ejecutar un servicio proporcionado por paquetes como instancias de unidades múltiples. Quiero evitar crear mi propio archivo de unidad de plantilla, así que estoy tratando de ver si el archivo de unidad proporcionado por el paquete se puede reemplazar para crear el archivo de unidad de plantilla.
Dado que, según tengo entendido, el archivo de unidad de plantilla tiene una convención de nomenclatura que es diferente del archivo de unidad normal, creo que no puedo anular el archivo de unidad proporcionado por el paquete con un archivo de plantilla colocándolo en / etc / systemd / system.
¿Hay alguna forma definida de lograr lo que estoy tratando de hacer?
Escenario específico: el paquete grafana instala un archivo de unidad grafana-server.service. Quiero ejecutar dos instancias de grafana en mi máquina, una para DEV y STG. He podido hacer esto:
- modifique el archivo grafana-server.service (usando% I para establecer ubicaciones de carpetas y rutas de archivos)
- cambie el nombre del grafana-server.service modificado a grafana-server @ .service
iniciar instancias de grafana usando:
sudo systemctl start grafana-server@dev
y
sudo systemctl start grafana-server@stg
Sin embargo, esto rompe el enlace del archivo de unidad de servicio proporcionado por grafana, y si mejoran el archivo de servicio cuando actualizo, tendré que rehacer esta actividad nuevamente. Mi objetivo es evitar esta dependencia directa y, en su lugar, convertirla en una dependencia de anulación.
¿Alguna idea?