Je sais que systemd fournit un excellent mécanisme pour remplacer un fichier d'unité fourni par le package pour influencer la configuration / le comportement du service. Cela se fait généralement en utilisant la commande ci-dessous
sudo systemctl edit <unitfile>
pour créer un fichier de configuration de remplacement à
/etc/systemd/system/<unitfile.d>/
Systemd fournit également un mécanisme distinct pour définir un fichier d'unité modèle et le faire instancier pour créer des unités spécifiques à l'instance lors de l'exécution. Cela nécessite de nommer le fichier modèle comme
<servicename>@.service
puis l'instancier comme
systemctl start <servicename>@<instancename>
Maintenant, j'ai une situation où je voudrais exécuter un service fourni par package comme plusieurs instances d'unité. Je veux éviter de créer mon propre fichier d'unité de modèle, donc j'essaie de voir si le fichier d'unité fourni par le package peut être remplacé pour créer le fichier d'unité de modèle.
Étant donné que, à ma connaissance, le fichier d'unité de modèle a une convention de dénomination différente du fichier d'unité standard, je pense que je ne peux pas remplacer le fichier d'unité fourni par le package par un fichier de modèle en le plaçant dans / etc / systemd / system.
Existe-t-il un moyen défini de réaliser ce que j'essaie de faire?
Scénario spécifique: le package grafana installe un fichier d'unité grafana-server.service. Je veux exécuter deux instances de grafana sur ma machine - une pour DEV et STG chacune. J'ai pu le faire:
- modifier le fichier grafana-server.service (en utilisant% I pour définir les emplacements des dossiers et les chemins d'accès aux fichiers)
- renommer le grafana-server.service modifié en grafana-server @ .service
démarrer des instances de grafana en utilisant:
sudo systemctl start grafana-server@dev
et
sudo systemctl start grafana-server@stg
Cependant, cela rompt le lien avec le fichier d'unité de service fourni par grafana et s'ils améliorent le fichier de service lors de la mise à niveau, je devrai refaire cette activité. Mon objectif est d'éviter cette dépendance directe et de la convertir à la place en une dépendance de substitution.
Des pensées?