RPM SPEC Systemd включить и запустить - PullRequest
0 голосов
/ 27 марта 2019

Я создал файл SPEC RPM, но у меня проблемы с включением и запуском Systemd.Обновление пакета через yum отключает и останавливает службу.Дистрибутив - Centos 7.x

Я установил службу в / etc / systemd / system.Это то, для чего я пытался, но это не работает.

Я не нашел хороших рабочих примеров того, как это сделать.

Я использовал эту страницу в качестве ссылки.https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_syntax

    #Pre installation/upgrade of RPM section
    %pre      
      #Upgrading
      if [ $1 -eq 2 ]; then
        /usr/bin/systemctl stop %{pkgname}.service >/dev/null 2>&1 ||:
      fi

    %post
    %systemd_post %{pkgname}.service

      if [ $1 -eq 1 ]; then        
        /usr/bin/systemctl daemon-reload
        /usr/bin/systemctl start %{pkgname}.service
      fi
      if [ $1 -eq 2 ]; then
        /usr/bin/systemctl daemon-reload
        /usr/bin/systemctl start %{pkgname}.service    
      fi

   %preun
   %systemd_preun %{pkgname}.service
    #old package
    #uninstall
    if [ $1 -eq 0 ]; then
      /usr/bin/systemctl --no-reload disable %{pkgname}.service
      /usr/bin/systemctl stop %{pkgname}.service >/dev/null 2>&1 ||:
      /usr/bin/systemctl disable %{pkgname}.service

    fi
    if [ $1 -eq 1 ]; then
      /usr/bin/systemctl --no-reload disable %{pkgname}.service
      /usr/bin/systemctl stop %{pkgname}.service
    fi

1 Ответ

2 голосов
/ 27 марта 2019

1) %{pkgname}.service должен быть помещен в %{_unitdir}, который расширяется до /usr/lib/systemd/system/

2) При использовании макроса %systemd_post %{pkgname}.service там нет необходимости:

  if [ $1 -eq 1 ]; then        
    /usr/bin/systemctl daemon-reload
    /usr/bin/systemctl start %{pkgname}.service
  fi
  if [ $1 -eq 2 ]; then
    /usr/bin/systemctl daemon-reload
    /usr/bin/systemctl start %{pkgname}.service    
  fi

Аналогично для %pre и %preun.

...