Bir systemd hizmeti olarak çalıştırmak için bir mono uygulama paketlemeye çalışıyorum.
Buradaki talimatları izledim: https://wiki.debian.org/Teams/pkg-systemd/Packaging
Debian kontrol dosyası derleme dh-systemd (> = 1.5) ekledim bağlıdır.
Aşağıdaki gibi kurallar dosyasına --with = systemd ekledim:
%:
dh $@ --with=cli --with=systemd
Servis dosyamı aşağıdaki içeriklerle mypackage.service adlı debian klasörüne ekledim:
[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
Ancak bina aşağıdaki lintian uyarılarını ve hatalarını verir:
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
Bu beni birkaç nedenden dolayı karıştırıyor
- Bu uyarı, systemd ile değiştirilen eski sistem olan init.d ile ilgilidir, bu hatalar ve uyarılar sadece yanlış mı, debuild init.d kullandığımı düşünüyor mu?
- --With = systemd'nin bu komut dosyalarını benim için oluşturacağı izlenimindeydim.
Güncelleme
Oluşturulan postrm dosyası aşağıdaki gibidir:
#!/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
oluşturulan prerm dosyası aşağıdaki gibidir:
#!/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
Paket aslında iyi bir şekilde kurulur ve servis doğru şekilde başlar. Lintian hataları endişe vericidir ve bunların en altına inmek istiyorum.
dh) uygun olanları üretiyor olmalıdır. Run dpkg-deb --controloluşturulan deb dosyasını ve yeni oluşturulan içinde bakmak DEBIANiçin dizine postinst, postrmdosyaları.
postrmSenaryonuz ne içeriyor? Debhelper kazan plakası var mı?