На самом деле я работаю над модульной системой с несколькими службами. В этой системе у меня уже есть файл конфигурации, и я хотел бы использовать этот файл конфигурации для включения или отключения некоторых служб, работающих с systemd. Файл конфигурации может содержать что-то вроде этого:
...
[ServiceEnable]
Service1Enable=True
Service2Enable=False
Service3Enable=True
...
Сначала я просто подумал о другой службе, которая анализирует мой файл конфигурации и создает небольшие файлы в зависимости от конфигурации, чтобы мои службы могли использовать ConditionPathExists параметр, но я не считаю это решение элегантным.
Есть ли другой способ динамически включать или отключать некоторые службы с помощью моих файлов конфигурации?
Наличие собственного файла конфигурации с состоянием службы дублирует диспетчер служб (systemd). Не надо, это добавило бы незнакомого уровня косвенности.
Скорее напишите и выпустите конфигурацию диспетчера служб, в данном случае как модули systemd. Многие из них в порядке, ничего страшного с десятками единиц.
Установите желаемое поведение, используя такие функции, как зависимости, настройки перезапуска и, возможно, активацию сокета. Документируйте, как запускать и останавливать основной блок, а также какие дополнительные блоки имеет смысл отключать.
Генераторы устройств - это вещь, но они не нужны, если у вас нет переменная количество единиц и алгоритм их создания.