প্রকাশিত: এপ্রিল ১৯, ২০২৬, ১০:০০ AM EDT
আফামের টেক পাবলিশিং অভিজ্ঞতা ২০১৮ সালে শুরু হয়েছিল, যখন তিনি মেক টেক ইজিয়ার জন্য কাজ করতেন। বছর ধরে তিনি উইন্ডোজ, লিনাক্স এবং ওপেন সোর্স টুলস কভার করে উচ্চ মানের গাইড, রিভিউ, টিপস এবং এক্সপ্লেইনার আর্টিকেল প্রকাশের জন্য খ্যাতি অর্জন করেছেন। তার কাজ টেকনিক্যাল উস্তাদ, উইন্ডোজ রিপোর্ট, গাইডিং টেক, আলফিআর এবং নেক্সট অফ উইন্ডোজ সহ শীর্ষ ওয়েবসাইটে ফিচার করা হয়েছে।
তিনি কম্পিউটার সায়েন্সে প্রথম ডিগ্রি धারণ করেন এবং ডেটা গোপনীয়তা এবং নিরাপত্তার दृঢ় সমর্থক, ফুজো টেক ইউটিউব চ্যানেলে এই বিষয়ে flera টিপস, ভিডিও এবং টিউটোরিয়াল প্রকাশ করেছেন।
কাজ না থাকলে তিনি পরিবারের সাথে সময় কাটান, সাইকেল চালান বা বাগানডান করেন।
আমি লিনাক্স ব্যবহারের জন্য এর স্থিতিশীলতা পছন্দ করি। তবে, আমার হোম সার্ভার যা ২৪/৭ চলে, তা লিনাক্সকে সীমার ধাক্কা দেয় এবং আমি সবচেয়ে খারাপ মুহূর্তে এটি행을 দেখেছি। অনেক সময় আমাকে ম্যানুয়ালি রিবুট করতে হয়েছে যাতে আমার রিমোট বক্স আবার অনলাইনে আসে।
আপনি যদি এই পরিস্থিতির মুখোমুখি হন, তবে লিনাক্সের একটি বিল্ট-ইন সিস্টেম রয়েছে যা এই ধরনের পরিস্থিতির জন্য উপযুক্ত। এটি systemd-এর সার্ভিস রিকভারির সাথে যুক্ত করলে আমাকে একটি দক্ষ দু-স্তরীয় ক্র্যাশ রিকভারি механиজম मिलে যা কোনো শারীরিক हস্তক্ষেপ চাই না।
লিনাক্সে ইতিমধ্যেই একটি বিল্ট-ইন রিকভারি মেকানিজম রয়েছে
আপনার সিস্টেম রক্ষা করে ওয়াচডগ টাইমার
লিনাক্সে ওয়াচডগ নামে একটি বিল্ট-ইন ফিচার রয়েছে, যা এই নীতিতে কাজ করে যে সিস্টেম নিয়মিত সিগন্যাল পাঠায় যাতে বোঝা যায় এটি এখনও সক্রিয়। যetectে এটি সিস্টেম থেকে সিগন্যাল পায় না, ওয়াচডগ অনুমান করে একটি সমস্যা আছে এবং একটি রিবুট ট্রিগার করে। এই ফিচার ১৯৯০-এর মাঝপথ থেকে লিনাক্সে রয়েছে এবং মূলত সার্ভার এবং এমবেডেড সিস্টেমের মতো সিস্টেমে ব্যবহার করা হয় যেখানে আপটাইম নন-নেগোশिएবল।
কিছু সিস্টেমে, ওয়াচডগ /dev/watchdog ডিভাইস ফাইল 통해 প্রকাশ পায়, অন্যদের ক্ষেত্রে এটি /dev/watchdog0 হতে পারে। একটি প্রসেসকে এই ফাইলে লিখতে হবে কাউন্টডাউন টাইমার রিসেট করতে। যদি প্রসেস লিখতে বন্ধ করে দেয়, তাহলে সাধারণত এর মানে সিস্টেম ফ্রিজ হয়েছে বা একটি রানওয়ে প্রসেস রিসোর্স খাচ্ছে। এমন ক্ষেত্রে, টাইমার এক্সপায়ার হয় এবং সেটাই রিবুট ট্রিগার করে।
দুই ধরনের ওয়াচডগ রয়েছে: হার্ডওয়্যার এবং সফটওয়্যার (সফটডগ)। প্রথমটি মাদারবোর্ডে একটি হার্ডওয়্যার মেকানিজম হতে পারে। এটি কERNEL সম্পূর্ণ লকড থাকলে সিস্টেম রিসেট করতে সক্ষম। দ্বিতীয়টি কার্নেলের ভিতরে চলে এমন একটি সফটওয়্যার সংস্করণ যা কোনো অতিরিক্ত হার্ডওয়্যার চাই না। এই সংস্করণটি তবে কার্নেল ক্র্যাশ হলে আপনাকে বাঁচাতে পারে না।
| টাইপ | নিবেদিত হার্ডওয়্যার প্রয়োজন | হার্ড কার্নেল ক্র্যাশ থেকে বাঁচাতে পারে | সর্বোত্তম সুযোগ |
|---|---|---|---|
| হার্ডওয়্যার ওয়াচডগ | হ্যাঁ | হ্যাঁ | সার্ভার, সবসময় অন crítica সিস্টেম |
| সফটওয়্যার (সফটডগ) | না | না | হোম সার্ভার, VM, সাধারণ-উদ্দেশ্য রিগ |
সফটওয়্যার ওয়াচডগ اکثر সেটআপের সামান্য ফ্রিজের জন্য চমৎকার, যেমন লোড স্পাইক, মেমরি এক্সহসশন এবং রানওয়ে প্রসেস। তবে, এই ফিচারটি ডিফল্টরূপে নিষ্ক্রিয় থাকে এবং ভুল কনফিগারেশন করা হলে অপ্রয়োজনীয় এবং পুনরাবৃত্ত সিস্টেম রিবুটের কারণ হতে পারে।そう言うと, এটি আমার প্রিয় লুকানো লিনাক্স ফিচারের একটি হয়ে উঠেছে।
মিনিটে অটোমেটিক ক্র্যাশ রিকভারি সেট আপ করুন
একটি ব্যবহারিক ওয়াচডগ সেটআপ যা আসলে কাজ করে
সফটডগ প্রায় সমস্ত লিনাক্স ডিস্ট্রোতে কাজ করে, তাই আপনাকে নতুন হার্ডওয়্যারের দরকার নেই। আপনার শুরুর বিন্দু হল এই কমান্ড দিয়ে মডিউল লোড করা:
sudo modprobe softdog
রিবুটের পরেও সফটডগ বজায় রাখতে, /etc/modules ফাইলটি খুলুন (ডেবিয়ান/উবুন্টু), একক লাইনে softdog যোগ করুন এবং সংরক্ষণ করুন। এখন ওয়াচডগ ডেমন ইনস্টল করুন এবং নিচের কমান্ডগুলো দিয়ে এনাবল করুন:
sudo apt install watchdog
sudo systemctl enable --now watchdog
এটি হলে, /etc/watchdog.conf খুলুন এবং কিছু গুরুত্বপূর্ণ সেটিংসে ফোকাস করুন:
| সেটিং | এটি কী নিয়ন্ত্রণ করে | ব্যবহারিক শুরুর বিন্দু |
|---|---|---|
| interval | সিস্টেম কত često চেক-ইন করে | ১০ সেকেন্ড |
| max-load-1 | রিবুটের আগে লোড গড়ের সিলিং | ~৬× CPU কোর কাউন্ট |
| min-memory | রিবুটের আগে ফ্রি মেমরির ফ্লোর | ~৫১২ পেজ (~২MB) |
max-load-1-এর জন্য লোড গড় এক মিনিটের। এই মান আপনার ডিভাইসে সক্রিয়ভাবে CPU সময়ের জন্য প্রতিযোগিতা করার প্রসেসের সংখ্যা বোঝায়। এর মানে যদি একটি ৪-কোর মেশিনের লোড ৪.০ হয়, তবে প্রতিটি কোর সম্পূর্ণ заняস্ত। আপনার কোর কাউন্টের ৬x ব্যবহার করা নিরাপদ যাতে আপনার সিস্টেম লকআপের আগে বাস্টের জন্য হেডরুম পায়, যা লেজিটিমেট হতে পারে।
এছাড়া মনে রাখবেন যে min-memory মেমরি পেজে নির্দিষ্ট করা হয়, মেগাবাইটে নয়। একটি পেজ সাধারণত x86_64 সিস্টেমে ৪KiB। এই অনুযায়ী, ৫১২ পেজ প্রায় ২MB ফ্রি মেমরি হবে।
এই কনফিগারেশনগুলো সম্পন্ন হলে, ডেমন চলছে কিনা যাচাই করার জন্য systemctl status watchdog কমান্ড চালান, এবং এর কার্যকলাপ পর্যালোচনা করার জন্য journalctl -u watchdog কমান্ড ব্যবহার করুন।
ওয়াচডগ সার্ভিস বন্ধ করলে রিবুট ট্রিগার হবে না—ডেমন আউট হওয়ার সময় /dev/watchdog ক্লিনলি বন্ধ করে, যা সফলভাবে টাইমার নিষ্ক্রিয় করে। আপনার সিস্টেম রিবুট করবে কিনা তা পরীক্ষা করতে, আপনাকে একটি রিয়েল ফেইলার কন্ডিশন সিমুলেট করতে হবে, যেমন একটি সাস্টেইনড লোড স্পাইক।
প্রতিটি ক্র্যাশের জন্য রিবুট দরকার নেই
systemd সেকেন্ডের মধ্যে ভাঙা সার্ভিস ঠিক করুন
অনেক فشل রয়েছে যা systemd সেকেন্ডের মধ্যে হ্যান্ডেল করতে পারে যেগুলোর জন্য সিস্টেম রিবুটের দরকার নেই। উদাহরণস্বরূপ, একটি সার্ভিস যা ক্র্যাশ করে, অপ্রত্যাশিতভাবে বন্ধ হয়, বা রেসপONSE देना বন্ধ করে। আপনি চেক প্রয়োগ করতে পারেন যাতে মূল ইউনিট ছোঁয়া ছাড়া সবকিছু রিবুট ট্রিগার করে না। নিচের কমান্ডটি চালান, সার্ভিসের নাম যোগ করে:
sudo systemctl edit
তারপর নিম্নলিখিতটি যোগ করুন:
[Service]
Restart=on-failure
RestartSec=5
Restart=on-failure নিশ্চিত করে যে রিস্টার্ট শুধু তখনই হবে যখন সার্ভিস একটি এরর কোডের সাথে বন্ধ হয়, এবং RestartSec=5 একটি ছোট বিলম্ব যোগ করে দ্রুত রিস্টার্ট লুপ প্রতিরোধ করতে।
StartLimitIntervalSec এবং StartLimitBurst একসাথে ব্যবহার করলে একটি ভাঙা সার্ভিস অনন্তকাল রিস্টার্ট হতে পারবে না। ক্র্যাশ লুপ রোধে এটি অত্যন্ত গুরুত্বপূর্ণ, কিন্তু শুধুমাত্র systemd-এ চলমান সার্ভিসের জন্য কাজ করে।
প্রায় সব ব্যর্থতা কভার করে দু-স্তরীয় রিকভারি
ন হলো ওয়াচডগ, ন systemd সার্ভিস ম্যানেজমেন্ট স্বতন্ত্রভাবে পুরোপুরি। তবে একসাথে ব্যবহার করলে, তারা প্রায় সবকিছু হ্যান্ডেল করতে পারে।
| ব্যর্থতার ধরন | রিকভারি লেয়ার | প্রত্যাশিত ফলাফল |
|---|---|---|
| সার্ভিস ত্রুটির সাথে বন্ধ হয় | systemd (Restart=on-failure) | সেকেন্ডের মধ্যে সার্ভিস রিস্টার্ট |
| সার্ভিস ক্লিনলি বন্ধ হয় কিন্তু উচিত নয় | systemd (Restart=always) | সেকেন্ডের মধ্যে সার্ভিস রিস্টার্ট |
| পূর্ণ সিস্টেম ফ্রিজ বা লোড স্পাইরাল | ওয়াচডগ ডেমন | অটোমেটিক রিবুট, কোনো ম্যানুয়াল ধাপ নেই |
systemd পৃথক সার্ভিস ব্যর্থতা ধরতে এবং রিস্টার্ট করার জন্য উপযুক্ত, এবং ওয়াচডগ এর উপরে বসে পুরো সিস্টেম নজরদারি করে এবং systemd-এর সীমা বাহিরে কিছু ভুল হলে রিস্টার্ট ট্রিগার করে।
এই কম্বিনেশন মানে আপনাকে প্রতিবার কিছু ভুল হলে উপস্থিত থাকতে হবে না, এবং এটি সার্ভার ম্যানেজমেন্টকে আরও সुखদ করে তোলে। בנוסף, আপনার অধিকাংশ সিস্টেম সমস্যা সমাধান করতে সাহায্য করার নির্দিষ্ট লিনাক্স কমান্ড শিখতে পারেন।