কম্পিউটার টিউটোরিয়াল

অপ্রয়োজনীয় সার্ভিস বন্ধ করে লিনাক্স বুট টাইম স্পিড আপ করুন

অপারেটিং সিস্টেমগুলো 점점 বেশি ব্যাকগ্রাউন্ডে চলমান সার্ভিসের সাথে ব্লোটেড হচ্ছে। সেগুলো 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
অপ্রয়োজনীয় সার্ভিস বন্ধ করে লিনাক্স বুট টাইম স্পিড আপ করুন

এটি আপনাকে চিনতে সাহায্য করে কোন Snap-সম্পর্কিত ইউনিটগুলো স্টার্টআপ অ্যাক্টিভিটিতে অবদান রক্ষা করছে।

সকেট-এক্টিভেটেড সার্ভিসের সাথে ডিল করা

কিছু সার্ভিস, snapd সহ, সকেট এক্টিভেশন ব্যবহার করে। এর মানে হলো সার্ভিসটি শুরু হতে পারে যখন কিছু সেটির সাথে যোগাযোগ করার চেষ্টা করে, এমনকি যদি এটি ডিজেবল করা থাকে।

যদি রিবুট করার পর snapd এখনো দেখায়, সংশ্লিষ্ট ইউনিট যেমন snapd.socket বা snapd.seeded.service দায়ী হতে পারে। এই কেসে, সার্ভিস এবং এর সকেট মাস্ক করা আরও কার্যকর:

sudo systemctl mask snapd.service
sudo systemctl mask snapd.socket

মাস্কিং সার্ভিসকে সম্পূর্ণরূপে ব্লক করে যাতে ডিপেন্ডেন্সি বা সকেট এটিকে শুরু করতে না পারে। যাইহোক, এই পদ্ধতি সতর্কতার সাথে ব্যবহার করুন, বিশেষ করে সেই ডিস্ট্রিবিউশনে যেগুলো সিস্টেম আপডেট বা অ্যাপ্লিকেশনের জন্য Snap প্যাকেজের ওপর নির্ভরশীল।

এছাড়া, এই প্রসঙ্গে “disable”-কে “masking”-এর সাথে গুলিয়ে ফেলবেন না। একটি সার্ভিস ডিজেবল করা systemd-কে বলে যে এটি অটোমেটিক্যালি শুরু করবে না। মাস্কিং আরও দূর যায় সার্ভিসকে যেকোনো हालতেও শুরু হতে না দিয়ে। অধিকাংশ পরিস্থিতিতে, ডিজেবল করা যথেষ্ট। মাস্কিং সেসব সার্ভিসের জন্য উপযোগী যা যিদ्दीভাবে রিস্টার্ট হয় বা আপনার সিস্টেমে স্পষ্টভাবে অপ্রয়োজনীয়।

আরও, আপনার সেটআপের ওপর নির্ভর করে, আপনি কিছু আরো সার্ভিস পেতে পারেন যেগুলো আপনি নিরাপদে ডিজেবল করতে পারেন, যেমন:

avahi-daemon.service
ModemManager.service
thermald.service

যাইহোক, নিশ্চিত করুন যে আপনি সর্বদা একটি সার্ভিস রিসার্চ করে নেন ডিজেবল করার আগে। যা একটি ডেস্কটপ সিস্টেমে অপ্রয়োজনীয়, সেটি একটি ল্যাপটপ বা সার্ভারে অপরিহার্য হতে পারে।

চূড়ান্ত মতামত

অপ্রয়োজনীয় সার্ভিস ডিজেবল করা বুট টাইম কমাতে পারে এবং সিস্টেম রিসোর্স মুক্ত করতে পারে, বিশেষ করে ট্র্যাডিশনাল হার্ড ড্রাইভ ব্যবহারকারী সিস্টেমে। আধুনিক SSD-ভিত্তিক সিস্টেমেও, অপ্রয়োজনীয় সার্ভিস ছাঁটাই আপনার সিস্টেমকে ক্লিন এবং দক্ষ রাখতে সাহায্য করে।

অতিরিক্তভাবে, Stacer-এর মতো গ্রাফিক্যাল টুলস সার্ভিস ম্যানেজ করার জন্য আছে, কিন্তু সেগুলো প্রায়শই সীমিত কন্ট্রোল বা পুরনো ফাংশনালিটি প্রদান করে। ডিস্ট্রিবিউশন জুড়ে কনসিস্টেন্ট এবং প্রিসাইজ ম্যানেজমেন্টের জন্য, systemctl কমান্ড-লাইন টুলই সবচেয়ে विश्वস্ত বিকল্প।

  1. উইন্ডোজ ১১/১০-এ Accessories ফোল্ডার কোথায়?

  2. উইন্ডোজ পিসিতে The King of Fighters XV ক্র্যাশ বা ফ্রিজ হচ্ছে

  3. উইন্ডোজ ১১/১০-এ মেশিন চেক এক্সেপশন ব্লু স্ক্রিন সমাধান

  4. আইপ্যাড এবং macOS-এর মধ্যে সাইডকার কানেকশন সমস্যা সমাধান: ধাপে ধাপে গাইড