मैं एक मोनो एप्लिकेशन को एक सिस्टमड सर्विस के रूप में चलाने के लिए पैकेज करने की कोशिश कर रहा हूं।
मैंने यहां निर्देशों का पालन किया है: https://wiki.debian.org/Teams/pkg-systemd/Packaging
मैंने अपने डेबियन कंट्रोल फ़ाइल बिल्ड निर्भर पर dh-systemd (> = 1.5) जोड़ा है।
मैंने अपनी नियम फ़ाइल में --with = systemd को इस प्रकार जोड़ा है:
%:
dh $@ --with=cli --with=systemd
मैंने अपनी सेवा फ़ाइल को अपने डेबियन फ़ोल्डर में जोड़ दिया है, जिसे mypackage.service कहा जाता है:
[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
हालाँकि निर्माण निम्नलिखित लिंटियन चेतावनियाँ और त्रुटियाँ देता है:
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
यह मुझे कई कारणों से भ्रमित कर रहा है
- ये चेतावनी init.d के बारे में है जो पुरानी प्रणाली है जिसे systemd द्वारा प्रतिस्थापित किया जाता है, क्या ये त्रुटियां और चेतावनी सिर्फ गलत हैं, क्या debuild को लगता है कि मैं init.d का उपयोग कर रहा हूं क्योंकि मैंने अपना पैकेज गलत तरीके से कॉन्फ़िगर किया है?
- मैं इस धारणा के अधीन था कि thewith = systemd मेरे लिए ये स्क्रिप्ट बनाएगा।
अपडेट करें
उत्पन्न पोस्टम फ़ाइल इस प्रकार है:
#!/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
उत्पन्न prerm फ़ाइल निम्नानुसार है:
#!/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
पैकेज वास्तव में ठीक स्थापित होता है और सेवा सही ढंग से शुरू होती है। लिंटियन त्रुटियां चिंताजनक हैं, और मैं उनमें से सबसे नीचे जाना चाहता हूं।
dh
) उपयुक्त होना चाहिए। भागो dpkg-deb --control
उत्पन्न देब फ़ाइल पर, और नव निर्मित में देखो DEBIAN
के लिए निर्देशिका postinst
, postrm
फ़ाइलें।
postrm
स्क्रिप्ट में क्या है ? क्या यह डीहेलर बॉयलरप्लेट है?