Вы можете использовать предварительные настройки systemd, чтобы указать, будет ли служба systemd по умолчанию включена или отключена во время установки.
По умолчанию предустановки Debian включают все службы по мере их установки, поэтому вам нужно только отправить предустановку на рабочие станции разработки (поведение по умолчанию соответствует тому, что вы хотите получить в рабочей среде), отправив файл, например, /etc/systemd/system-preset/80-foo.preset
содержащий строку, которая говорит
disable foo.service
Если вы управляете своими рабочими станциями разработчика с помощью таких систем, как Puppet, Chef, Ansible и т. Д., Вы можете использовать их для доставки такой предустановленной конфигурации systemd, которая облегчит вам применение политики только к рабочим станциям разработчика, а не к рабочей среде. машины.
Ваш пакет .deb должен использовать systemctl preset
команду для включения службы, так как эта команда будет учитывать предварительно заданную конфигурацию.
Как указывают @JdeBP и @sourcejedi , макросы Debian в deb-помощниках (таких как dh_systemd_enable
) уже делают это, они вызывают, deb-systemd-helper
который будет использовать systemctl preset
по умолчанию (с небольшим предупреждением, что если вы удалите (но не очистите) пакет, и затем снова установить его, он будет не включить службу, даже если вы удалите файл предустановленный) См. этот комментарий в deb-systemd-helper
«s enable
операции :
# We use 'systemctl preset' on the initial installation only.
# On upgrade, we manually add the missing symlinks only if the
# service already has some links installed. Using 'systemctl
# preset' allows administrators and downstreams to alter the
# enable policy using systemd-native tools.
Для получения дополнительной информации о функции пресетов systemd см. Справочную страницу пресетов systemd и команды, systemctl preset
которая ее реализует.
*.preset
файлы как часть этого пакета.