मैं अभी भी प्रणाली के साथ पकड़ रहा हूँ और कुछ में चला गया है। यह इतनी समस्या नहीं है, लेकिन मैं इसके बारे में और अधिक सीखना चाहूंगा। मुझे कहीं और इसका कोई संदर्भ नहीं मिला।
सबसे पहले, मैं समझता हूं कि सेवाओं के लिए कस्टम इकाई फ़ाइलों में जाना चाहिए /etc/systemd/system
। हालांकि, हमारे सर्वर के प्रबंधन के लिए अच्छा होगा यदि यूनिट फाइलें कहीं और स्थित हो सकती हैं।
दस्तावेज़ीकरण में, मैंने देखा कि आप इस तरह से यूनिट फ़ाइलों को 'लिंक' कर सकते हैं:
systemctl link /path/to/servicename.service
यह उपरोक्त में एक लिंक बनाएगा /etc/systemd/system
। अब आप इस सेवा को शुरू / बंद कर सकते हैं। सतह पर, यह हमारी सेवाओं का प्रबंधन करने के लिए एक अच्छा तरीका है।
हालाँकि, इस तरह की 'लिंक' इकाई फ़ाइल को विफल करने में सक्षम करने की कोशिश कर रहा है:
root@test1:/etc/systemd/system# systemctl link /root/myservice.service
Created symlink from /etc/systemd/system/myservice.service to /root/myservice.service.
root@test1:/etc/systemd/system# systemctl status myservice.service
* myservice.service - My Test Service
Loaded: loaded (/root/myservice.service; linked; vendor preset: enabled)
root@test1:/etc/systemd/system# systemctl enable myservice.service
Failed to execute operation: No such file or directory
ठीक उसी यूनिट फ़ाइल का उपयोग करना, लेकिन /etc/systemd/system
लिंक किए गए के बजाय में कॉपी किया गया, आपको मिलता है:
root@test1:/etc/systemd/system# cp -p /root/myservice.service .
root@test1:/etc/systemd/system# systemctl daemon-reload
root@test1:/etc/systemd/system# systemctl status myservice.service
* myservice.service - My Test Service
Loaded: loaded (/etc/systemd/system/myservice.service; disabled; vendor preset: enabled)
root@test1:/etc/systemd/system# systemctl enable myservice.service
Created symlink from /etc/systemd/system/multi-user.target.wants/myservice.service to /etc/systemd/system/myservice.service.
इससे, ऐसा लगता है कि सिस्टम फ़ाइलों में सिस्टम स्टार्टअप पर कॉल करने के लिए लिंक को सक्षम करना संभव नहीं है।
यदि ऐसा है, तो 'लिंक' की कार्यक्षमता का क्या मतलब है? डॉक्स से, यह कहता है:
FILENAME लिंक करें
एक इकाई फ़ाइल को लिंक करें जो इकाई फ़ाइल खोज पथ में इकाई फ़ाइल खोज पथ में नहीं है। इसके लिए एक यूनिट फ़ाइल के लिए एक पूर्ण पथ की आवश्यकता है। इस का प्रभाव अक्षम के साथ पूर्ववत किया जा सकता है। इस कमांड का प्रभाव यह है कि प्रारंभ और अन्य कमांड के लिए एक यूनिट फ़ाइल उपलब्ध है, हालांकि यह सीधे यूनिट सर्च पथ में स्थापित नहीं है।
systemctl enable
यह भी करेगाsystemctl link
, इसलिए 2 आज्ञाओं को टाइप करने की कोई आवश्यकता नहीं ;-)