Установка службы systemd из RPM?

Я создавал RPMS (используя CPake CMake), который устанавливает все в /opt, а затем сценарий postinstall копирует файлы определения службы в /etc/systemd/system,

Я поиграл с запуском и остановкой сервисов также в сценариях RPM postinstall и preuninstall, но это не очень хорошая идея, потому что yum при выполнении обновления будет запускать сценарий postinstall перед сценарием preuninstall, а это означает, что если вы попытаетесь обновить службу, то в итоге служба не будет запущена. Кажется, даже включение / отключение имеет ту же проблему.

Итак, у меня есть два вопроса

  1. Это хорошая идея для установки прямо в /etc/systemdили следует послеустановочная копия с /opt в /etc/systemd? Является cp с последующим systemctl daemon-reload "правильный" способ установки служебного файла?

  2. Есть ли чистый способ starting/stopping/enable/disable услуги от RPM, или это лучше оставить вне RPM?

Связанный вопрос (без ответов) для Debian:

Предпочтительный / Идиоматический метод для включения systemd.service из установки пакета Debian

1 ответ

См.: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/

В скриптлетах вы можете использовать переменную $1 для определения, является ли это обновление или чистая установка или обновление или удаление пакета. Значение переменной определяется здесь: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/

Другие вопросы по тегам