Saya mencoba mengemas aplikasi mono untuk dijalankan sebagai layanan systemd.
Saya telah mengikuti instruksi di sini: https://wiki.debian.org/Teams/pkg-systemd/Packaging
Saya telah menambahkan dh-systemd (> = 1.5) ke build file debian control saya.
Saya telah menambahkan --dengan = systemd ke file aturan saya sebagai berikut:
%:
dh $@ --with=cli --with=systemd
Saya telah menambahkan file layanan saya ke folder debian saya bernama mypackage.service dengan konten berikut:
[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
Namun bangunan memberikan peringatan dan kesalahan lintian berikut:
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
Ini membingungkan saya karena beberapa alasan
- Peringatan ini adalah tentang init.d yang merupakan sistem lama yang digantikan oleh systemd, apakah kesalahan dan peringatan ini salah, apakah debuild berpikir saya menggunakan init.d karena saya telah mengonfigurasi paket saya salah?
- Saya mendapat kesan bahwa --with = systemd akan membuat skrip ini untuk saya.
Memperbarui
File postrm yang dihasilkan adalah sebagai berikut:
#!/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
file prerm yang dihasilkan adalah sebagai berikut:
#!/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 ini benar-benar diinstal dengan baik dan layanan dimulai dengan benar. Kesalahan lintian mengkhawatirkan, dan saya ingin membahasnya.
dh
) harus menghasilkan yang sesuai. Jalankan dpkg-deb --control
pada file deb yang dihasilkan, dan tampilan dalam baru dibuat DEBIAN
direktori untuk postinst
, postrm
file.
postrm
skrip Anda ? Apakah itu memiliki boilerplate debhelper?