Instalando um serviço systemd de um RPM?

6

Eu tenho criado RPMS (usando o CPack do CMake), que instala tudo em /opt , e o script postinstall copia os arquivos de definição de serviço para /etc/systemd/system .

Brinquei com iniciar e parar os serviços também nos scripts de pós-instalação e pré-instalação do RPM, mas isso não parece ser uma boa ideia, porque yum executará o script postinstall antes do script de pré-instalação se fazendo uma atualização, e isso significa que, se você tentar atualizar um serviço, acabará com o serviço não sendo executado de qualquer maneira. Até ativar / desativar parece ter o mesmo problema.

Então as duas perguntas que eu tenho

  1. É uma boa ideia instalar diretamente em /etc/systemd ou uma cópia de pós-instalação de /opt para /etc/systemd ? cp é seguido por systemctl daemon-reload a maneira "correta" de instalar o arquivo de serviço?

  2. Existe uma maneira limpa de starting/stopping/enable/disable serviços de um RPM, ou é melhor deixar de fora do RPM?

Pergunta relacionada (sem respostas) para o Debian:

Preferido / idiomático método para ativar um systemd.service a partir de uma instalação de pacotes Debian

    
por Mark Lakata 06.07.2015 / 18:42

1 resposta

3

Veja:    link

Nos scriptlets, você pode usar a variável $ 1 para detectar se é atualização ou instalação limpa ou atualização ou remoção do pacote. O valor da variável é definido aqui: link

    
por 30.07.2015 / 12:35