Tentando ativar o serviço instanciado através da instalação do pacote debian

0

Eu tenho um debconf de configuração interna que estou instalando em um sistema. Entre outras coisas, eu gostaria do pacote para ativar um console serial, conforme descrito no link .

Apreciando que eu poderia apenas executar systemd enable [email protected] no postinst do meu pacote, parece que seria melhor usar o debhelper para assegurar o comportamento adequado de atualização / desinstalação. No entanto, estou achando que:

  • Não posso simplesmente chamar dh_systemd_enable do meu arquivo rules com o nome de uma unidade de instância; ele espera ser apontado para um arquivo real (a mesma coisa se eu fizer uma execução final e tentar chamar deb-systemd-helper diretamente).
  • Eu posso instalar uma unidade de destino com o debhelper, mas não vejo como fazer a coisa certa.

Veja como é a minha unidade alvo:

[Unit]
Description=Serial Console

[Install]
WantedBy=getty.target
[email protected]

Eu posso ativar e / ou iniciar isso, e ele aparece como sendo executado em systemctl status , no entanto, ele não inicia o serviço de instância que ele deveria exigir.

Então, acho que minha pergunta é em duas partes: primeiro, por que a minha unidade alvo não está funcionando como esperado e, segundo, existe uma maneira melhor de conseguir isso sob o empacotamento da Debian?

    
por mikepurvis 20.09.2018 / 19:35

1 resposta

1
  1. A diretiva Requires deve aparecer na seção [Unit] , não em [Install] .
  2. Em vez disso, envie um link simbólico /lib/systemd/system/getty.target.wants/[email protected] -> /lib/systemd/system/[email protected] em seu pacote. Primeiro eu assumi que [email protected] é automaticamente puxado por getty.target se existir, mas tal dependência é adicionada apenas por systemd-getty-generator para o console principal do kernel se for um dispositivo serial, o que não é o caso aqui. Consulte o link e o man systemd-getty-generator para obter mais detalhes.
por 22.09.2018 / 07:46