Установка службы systemd из RPM?
Я создавал RPMS (используя CPake CMake), который устанавливает все в /opt
, а затем сценарий postinstall копирует файлы определения службы в /etc/systemd/system
,
Я поиграл с запуском и остановкой сервисов также в сценариях RPM postinstall и preuninstall, но это не очень хорошая идея, потому что yum
при выполнении обновления будет запускать сценарий postinstall перед сценарием preuninstall, а это означает, что если вы попытаетесь обновить службу, то в итоге служба не будет запущена. Кажется, даже включение / отключение имеет ту же проблему.
Итак, у меня есть два вопроса
Это хорошая идея для установки прямо в
/etc/systemd
или следует послеустановочная копия с/opt
в/etc/systemd
? Являетсяcp
с последующимsystemctl daemon-reload
"правильный" способ установки служебного файла?Есть ли чистый способ
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/