अधिक से अधिक ऑपरेटिंग सिस्टम पृष्ठभूमि में चलने वाली ढेर सारी सेवाओं के साथ फूले हुए होते जा रहे हैं। जबकि वे अधिक CPU समय का उपयोग नहीं कर सकते हैं, वे बूट समय और RAM उपयोग को बढ़ाते हैं। सौभाग्य से, ओपन-सोर्स ऑपरेटिंग सिस्टम आपको वह शक्ति और स्वतंत्रता देते हैं जो आप उचित समझते हैं। इसका मतलब है कि आप जो कुछ भी नहीं चाहते हैं उसे अक्षम या हटा सकते हैं। यहां हम आपको दिखाते हैं कि लिनक्स बूट समय को बेहतर बनाने के लिए अनावश्यक सेवाओं को कैसे अक्षम किया जाए।
नोट: हम आपको सेवाओं को हटाने के बजाय अक्षम करना दिखाते हैं। सेवाओं को अक्षम करने में स्थायी रूप से चीजों को तोड़ने का जोखिम कम होता है। और आप केवल एक सेवा को फिर से सक्षम करके पहले की तरह वापस जा सकते हैं यदि आप देखते हैं कि कुछ उपयोगी काम करना बंद कर दिया है।
प्रत्येक सेवा के लोड होने में लगने वाले समय का विश्लेषण करें
अधिकांश लिनक्स-आधारित ऑपरेटिंग सिस्टम डिफ़ॉल्ट रूप से Systemd का उपयोग करते हैं। इसके द्वारा शामिल उपयोगिताओं के सूट में, एक प्रोग्राम है जो आपको विश्लेषण करने देता है कि आपका सिस्टम कितनी तेजी से बूट होता है। विशेष रूप से, यह बूट के लिए आवश्यक कुल समय और प्रत्येक सेवा के लोड होने में लगने वाला समय दिखाता है। ध्यान दें कि कुछ सेवाएं समानांतर में लोड होती हैं। इसलिए, यदि एक को लोड होने में दो सेकंड लगते हैं और दूसरे को तीन सेकंड, तो इसका मतलब यह नहीं है कि कुल पांच सेकंड की आवश्यकता है। यह उससे बहुत कम हो सकता है।
एक टर्मिनल एमुलेटर खोलें और यह कमांड दर्ज करें:
systemd-analyze
यह दिखाता है कि लिनक्स कर्नेल और कोर सिस्टम सेवाओं को इनिशियलाइज़ होने में कितना समय लगता है। यह डेस्कटॉप एनिमेशन या उपयोगकर्ता एप्लिकेशन को लोड होने में लगने वाले समय को ध्यान में नहीं रखता।
हालांकि, आप इस कमांड के साथ ग्राफिकल इंटरफ़ेस को इनिशियलाइज़ करने के लिए आवश्यक समय देख सकते हैं:
systemd-analyze critical-chain graphical.target
यह ग्राफिकल टारगेट तक पहुंचने वाली सेवाओं की श्रृंखला दिखाता है। हालांकि उपयोगी, यह एक तकनीकी मील का पत्थर दर्शाता है न कि वह क्षण जब डेस्कटॉप पूरी तरह से निष्क्रिय होता है, क्योंकि कुछ पृष्ठभूमि घटक बाद में लोड होते रह सकते हैं।
नोट: डेस्कटॉप वातावरण के भीतर स्वचालित रूप से शुरू होने वाले प्रोग्राम आमतौर पर डेस्कटॉप-विशिष्ट ऑटोस्टार्ट सेटिंग्स या systemd उपयोगकर्ता सेवाओं के माध्यम से प्रबंधित होते हैं।
अंत में, शायद इस ट्यूटोरियल के उद्देश्य के लिए सबसे उपयोगी कमांड है:
systemd-analyze blame
आप अपने तीर कुंजियों या PAGE UP और PAGE DOWN के साथ सूची में नेविगेट कर सकते हैं। बाहर निकलने के लिए q दबाएं।
Systemctl का उपयोग करके अनावश्यक सेवाओं को अक्षम करें
जैसा कि आप पिछली तस्वीर में देख सकते हैं, snapd जैसी कुछ सेवाओं को लोड होने में कई सेकंड लगते हैं। एक SSD पर, यह नगण्य है। लेकिन एक पारंपरिक हार्ड डिस्क पर, इस तरह के समय कई सेकंड के क्रम के होंगे, और वे अंत में बहुत अधिक जुड़ जाएंगे।
मान लीजिए आपको snapd सेवा की आवश्यकता नहीं है, जो कंटेनराइज़्ड एप्लिकेशन स्नैप्स तक पहुंच प्रदान करती है। आप इसे इस कमांड से अक्षम कर सकते हैं:
sudo systemctl disable snapd.service
रीबूट करने के बाद, आप अभी भी कुछ शर्तों के तहत snapd को शुरू होते देख सकते हैं। ऐसा इसलिए होता है क्योंकि snapd सॉकेट एक्टिवेशन का उपयोग करता है, जिससे यह मांग पर शुरू हो सकता है भले ही सेवा स्वयं अक्षम हो।
आप संबंधित इकाइयों की पहचान इस कमांड से कर सकते हैं:
systemd-analyze blame | grep snap
यह पहचानने में मदद करता है कि कौन सी स्नैप-संबंधित इकाइयां स्टार्टअप गतिविधि में योगदान दे रही हैं।
सॉकेट-एक्टिवेटेड सेवाओं से निपटना
snapd सहित कुछ सेवाएं, सॉकेट एक्टिवेशन का उपयोग करती हैं। इसका मतलब है कि सेवा तब भी शुरू हो सकती है जब कोई इसके साथ संवाद करने का प्रयास करता है, भले ही यह अक्षम हो।
यदि रीबूट करने के बाद snapd फिर से प्रकट होता है, तो snapd.socket या snapd.seeded.service जैसी संबंधित इकाइयां जिम्मेदार हो सकती हैं। ऐसे मामलों में, सेवा और उसके सॉकेट को मास्क करना अधिक प्रभावी है:
sudo systemctl mask snapd.service sudo systemctl mask snapd.socket
मास्किंग सेवा को पूरी तरह से ब्लॉक कर देती है ताकि निर्भरताएं या सॉकेट इसे शुरू न कर सकें। हालांकि, इस दृष्टिकोण का सावधानी से उपयोग करें, विशेष रूप से उन डिस्ट्रीब्यूशन पर जो सिस्टम अपडेट या एप्लिकेशन के लिए स्नैप पैकेज पर भरोसा करते हैं।
इसके अलावा, इस संदर्भ में "disable" और "masking" को भ्रमित न करें। किसी सेवा को अक्षम करने से systemd को इसे स्वचालित रूप से शुरू न करने के लिए कहा जाता है। मास्किंग आगे जाकर सेवा को बिल्कुल भी शुरू होने से रोकती है। अधिकांश स्थितियों में, अक्षम करना पर्याप्त है। मास्किंग उन सेवाओं के लिए उपयोगी है जो जिद्दी तरीके से रीस्टार्ट होती हैं या आपके सिस्टम पर स्पष्ट रूप से अनावश्यक हैं।
इसके अलावा, आपके सेटअप के आधार पर, आप अतिरिक्त सेवाएं पा सकते हैं जिन्हें आप सुरक्षित रूप से अक्षम कर सकते हैं, जैसे:
avahi-daemon.service
ModemManager.service
thermald.service
हालांकि, किसी सेवा को अक्षम करने से पहले हमेशा उस पर शोध करें। एक डेस्कटॉप सिस्टम पर जो अनावश्यक है, वह लैपटॉप या सर्वर पर आवश्यक हो सकता है।
अंतिम विचार
अनावश्यक सेवाओं को अक्षम करने से बूट समय कम हो सकता है और सिस्टम संसाधन मुक्त हो सकते हैं, विशेष रूप से पारंपरिक हार्ड ड्राइव का उपयोग करने वाले सिस्टम पर। आधुनिक SSD-आधारित सिस्टम पर भी, अप्रयुक्त सेवाओं को ट्रिम करने से आपका सिस्टम साफ और कुशल रहता है।
इसके अलावा, Stacer जैसे ग्राफिकल टूल सेवाओं के प्रबंधन के लिए मौजूद हैं, लेकिन वे अक्सर सीमित नियंत्रण या पुरानी कार्यक्षमता प्रदान करते हैं। डिस्ट्रीब्यूशन में सुसंगत और सटीक प्रबंधन के लिए, systemctl कमांड-लाइन टूल सबसे विश्वसनीय विकल्प बना हुआ है।