Estou tentando empacotar um aplicativo mono para ser executado como um serviço systemd.
Segui as instruções aqui: https://wiki.debian.org/Teams/pkg-systemd/Packaging
Adicionei dh-systemd (> = 1.5) ao meu arquivo de controle debian depende.
Adicionei --with = systemd ao meu arquivo de regras da seguinte maneira:
%:
dh $@ --with=cli --with=systemd
Adicionei meu arquivo de serviço à minha pasta debian chamada mypackage.service com o seguinte conteúdo:
[Unit]
Description=My Service Description
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/mono /usr/lib/mypackage/myservice.exe
[Install]
WantedBy=multi-user.target
No entanto, a construção fornece os seguintes avisos e erros lintianos:
Now running lintian...
E: mypackage: postrm-does-not-call-updaterc.d-for-init.d-script etc/init.d/mypackage
W: mypackage: init.d-script-not-marked-as-conffile etc/init.d/mypackage
E: mypackage: init.d-script-not-included-in-package etc/init.d/mypackage
Isso está me confundindo por várias razões
- Esses avisos são sobre o init.d, que é o sistema antigo substituído pelo systemd, esses erros e avisos estão errados? O debuild acha que estou usando o init.d porque configurei meu pacote errado?
- Fiquei com a impressão de que o --with = systemd criaria esses scripts para mim.
Atualizar
O arquivo postrm gerado é o seguinte:
#!/bin/sh
set -e
# Automatically added by dh_systemd_start
if [ -d /run/systemd/system ]; then
systemctl --system daemon-reload >/dev/null || true
fi
# End automatically added section
# Automatically added by dh_systemd_enable
if [ "$1" = "remove" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ]; then
deb-systemd-helper mask mypackage.service >/dev/null
fi
fi
if [ "$1" = "purge" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ]; then
deb-systemd-helper purge mypackage.service >/dev/null
deb-systemd-helper unmask mypackage.service >/dev/null
fi
fi
# End automatically added section
o arquivo prerm gerado é o seguinte:
#!/bin/sh
set -e
# Automatically added by dh_systemd_start
if [ -d /run/systemd/system ]; then
deb-systemd-invoke stop mypackage.service >/dev/null
fi
# End automatically added section
# Automatically added by dh_installinit
if [ -x "/etc/init.d/mypackage" ] || [ -e "/etc/init/mypackage.conf" ]; then
invoke-rc.d mypackage stop || exit $?
fi
# End automatically added section
O pacote é instalado corretamente e o serviço é iniciado corretamente. Os erros lintianos são preocupantes e eu gostaria de chegar ao fundo deles.
dh
) deve gerar os apropriados. Executar dpkg-deb --control
no arquivo deb gerado, e olhar no recém-criado DEBIAN
diretório para postinst
, postrm
arquivos.
postrm
script contém? Possui o clichê do debhelper?