मैं सिर्फ Ubuntu सर्वर 14 से संस्करण 15 में अपग्रेड किया गया। मुझे अपग्रेड के बाद काम करने में अपनी upstart स्क्रिप्ट प्राप्त करने में परेशानी हुई, और पढ़ा कि systemd नया डिफ़ॉल्ट है। मैं एक Linux विशेषज्ञ से बहुत दूर हूँ, इसलिए कृपया मुझ पर आसानी से जाएँ :-)
यहाँ क्या मेरे ऊपर स्क्रिप्ट पहले था:
description "NZBGet upstart script"
setuid robert
setgid robert
start on runlevel [2345]
stop on runlevel [016]
respawn
expect fork
script
exec nzbget -D
end script
pre-stop script
exec nzbget -Q
end script
सिस्टमड विकी पेज पर अपस्टार्ट के आधार पर , मैंने चीजों को मैप करने के लिए वहां दी गई तालिकाओं का उपयोग किया जितना कि मैं अपनी नई सिस्टमड सर्विस फ़ाइल में कर सकता हूं:
[Unit]
Description=NZBGet Service
[Service]
Type=forking
ExecStart=/usr/local/bin/nzbget -D
ExecStop=/usr/local/bin/nzbget -Q
Restart=on-failure
यह फ़ाइल पर स्थित है /home/robert/.config/systemd/user/nzbget.service
। सेवा को मैन्युअल रूप से शुरू करने के लिए, मैं कर रहा हूं:
$ systemctl --user start nzbget
यह बहुत अच्छा काम करता है। हालाँकि, जब मैं अपने SSH सत्र से लॉग आउट करता हूं, तो सेवा बंद हो जाती है। साथ ही, यह बूटअप या उपयोगकर्ता लॉगिन पर शुरू नहीं होता है। मैं चाहता हूं कि यह उसी तरह का व्यवहार करे जैसा कि एक अपस्टार्ट सेवा के रूप में किया गया था: मैं चाहता हूं कि यह बूट पर शुरू हो, लगातार चलाए, और एक विशिष्ट उपयोगकर्ता के रूप में।
इस कॉन्फ़िगरेशन को प्राप्त करने के लिए मुझे क्या करने की आवश्यकता है?
systemctl enable
कमांड में सेवा फ़ाइल नाम के लिए पूर्ण पथ निर्दिष्ट करना था, हालांकि, यह मेरे लिए पहले स्पष्ट नहीं था। साथ ही सक्षम करने से मुझे एक लापता[Install]
अनुभाग के बारे में कुछ चेतावनी मिली । मैंने इसे अनदेखा किया, लेकिन मुझे यकीन नहीं है कि यह बूट समय पर शुरू करने की इसकी क्षमता को प्रभावित करेगा।