muda o nome de um arquivo de serviço ao criar um pacote

0

Como posso criar um serviço com um nome diferente do nome do pacote?

Estou preparando um pacote que também fornece um arquivo de serviço (systemd config) que deve ter um nome diferente do pacote.

Atualmente, adicionei um arquivo debian / pkg_name.service e ele funciona, mas o nome não reflete o serviço iniciado.

Eu já percebi que dh_installinit tem uma opção --name , mas as listas de páginas man

debian/package.name.init, debian/package.name.default and debian/package.name.upstart instead of the usual debian/package.init, debian/package.default and debian/package.upstart

mas não package.service. Além disso, eu não entendi realmente onde eu deveria colocar a linha. Atualmente meu debian / rules tem

%:
        dh  $@ --with bash-completion --with systemd
    
por Alessandro Dentella 04.02.2016 / 02:57

2 respostas

0

Por fim resolvi com a seguinte configuração:

  1. nome do pacote é thunder-buildout-prod

  2. debian / oooctl.service como em questão

  3. em debian / rules:

%:
  dh  $@ --with bash-completion --with systemd --with python2

override_dh_systemd_enable:
  dh_systemd_enable -p thunder-buildout-prod debian/oooctl.service

override_dh_systemd_start:
  dh_systemd_start -p thunder-buildout-prod debian/oooctl.service

Como última nota. Tendo um script em /etc/init.d/oooctl (note: mesmo nome que o serviço) que fontes / lib / lsb / init-functions, isso é suficiente para fazê-lo funcionar como uma chamada para systemctl start / stop / status oooctl.service ignorando o resto do script

    
por Alessandro Dentella 06.02.2016 / 02:21
0

De acordo com o dh_systemd_enable manual link :

--name=name
    Install the service file as name.service instead of the default 
    filename, which is the package.service. When this parameter is 
    used, dh_systemd_enable looks for and installs files named 
    debian/package.name.service instead of the usual debian/package.service.

Descobri que você também precisa passar o nome para dh_installinit . Por exemplo, se seu pacote tiver sido "mytool", mas você quiser que seu arquivo de serviço seja mytoolsrv.service em vez de mytool.service , crie o arquivo debian/tool.toolsrv.service e coloque o seguinte em você debian/rules file:

#!/usr/bin/make -f

%:
    dh $@

override_dh_systemd_enable:
    dh_systemd_enable --name=mytoolsrv

override_dh_installinit:
    dh_installinit --name=mytoolsrv

Testado com nível de compatibilidade debhelper 10.

    
por Lucas 08.08.2017 / 01:20