Я знаю, что systemd предоставляет отличный механизм для переопределения файла модуля, предоставляемого пакетом, для влияния на конфигурацию / поведение службы. Обычно это делается с помощью команды ниже
sudo systemctl edit <unitfile>
создать файл переопределения conf в
/etc/systemd/system/<unitfile.d>/
Systemd также предоставляет отдельный механизм для определения файла модуля шаблона и создания его экземпляра для создания модулей конкретного экземпляра во время выполнения. Это требует именования файла шаблона как
<servicename>@.service
а затем создать его как
systemctl start <servicename>@<instancename>
Теперь у меня есть ситуация, когда я хотел бы запустить службу, предоставляемую пакетом, как несколько экземпляров модуля. Я хочу избежать создания собственного файла модуля шаблона, поэтому я пытаюсь понять, можно ли переопределить файл модуля, предоставляемый пакетом, для создания файла модуля шаблона.
Поскольку, насколько я понимаю, файл модуля шаблона имеет соглашение об именовании, которое отличается от обычного файла модуля, я думаю, что я не могу переопределить файл модуля, предоставляемый пакетом, файлом шаблона, поместив его в / etc / systemd / system.
Есть какой-то определенный способ достичь того, что я пытаюсь сделать?
Конкретный сценарий: пакет grafana устанавливает файл модуля grafana-server.service. Я хочу запустить два экземпляра графаны на моей машине - по одному для DEV и STG. Я был в состоянии сделать это:
- изменить файл grafana-server.service (используя% I для установки местоположения папок и путей к файлам)
- переименуйте измененный grafana-server.service в grafana-server @ .service
начать экземпляры графана с помощью:
sudo systemctl start grafana-server@dev
а также
sudo systemctl start grafana-server@stg
Однако это разрывает ссылку на файл, предоставленный графическим сервисным модулем, и если они улучшают сервисный файл при обновлении, мне нужно будет повторить это действие снова. Моя цель - избежать этой прямой зависимости и вместо этого преобразовать ее в переопределенную зависимость.
Какие-нибудь мысли?