प्रकाशित: 19 अप्रैल, 2026, सुबह 10:00 बजे EDT
अफाम का टेक प्रकाशन में अनुभव 2018 से है, जब उन्होंने Make Tech Easier के लिए काम किया। वर्षों से, उन्होंने उच्च-गुणवत्ता वाले गाइड, समीक्षाएं, टिप्स, और व्याख्याता लेख प्रकाशित करने की प्रतिष्ठा बनाई है, जिसमें Windows, लिनक्स, और ओपन सोर्स टूल्स शामिल हैं। उनका काम Technical Ustad, Windows Report, Guiding Tech, Alphr, और Next of Windows सहित शीर्ष वेबसाइटों पर प्रदर्शित किया गया है।
उनके पास कंप्यूटर विज्ञान में पहली डिग्री है और वे डेटा गोपनीयता और सुरक्षा के प्रबल समर्थक हैं, इस विषय पर कई टिप्स, वीडियो, और ट्यूटोरियल Fuzo Tech YouTube चैनल पर प्रकाशित हैं।
जब वह काम नहीं कर रहे होते, तो वे अपने परिवार के साथ समय बिताना, साइकिल चलाना, या अपने बगीचे की देखभाल करना पसंद करते हैं।
मुझे इसकी स्थिरता के लिए Linux उपयोग करना पसंद है। हालांकि, मेरा होम सर्वर, जो 24/7 चलता है, इसे इसकी सीमा तक धकेलता प्रतीत होता है, और मैंने इसे कुछ सबसे खराब संभावित क्षणों में हैंग होते देखा है। कई बार, मुझे मैन्युअल रीबूट करने के लिए हस्तक्षेप करना पड़ा ताकि मेरा रिमोट बॉक्स ऑनलाइन वापस आ जाए।
यदि यह एक ऐसा परिदृश्य है जिसका आप सामना करते हैं, तो Linux के पास एक बिल्ट-इन सिस्टम है जो इस तरह की स्थितियों के लिए एकदम सही है। इसे systemd की सर्विस रिकवरी के साथ जोड़ने से मुझे एक कुशल टू-लेयर क्रैश रिकवरी तंत्र मिलता है जिसमें भौतिक हस्तक्षेप की आवश्यकता नहीं होती।
संबंधित
Linux में पहले से ही एक बिल्ट-इन रिकवरी तंत्र है
वह वॉचडॉग टाइमर जो आपके सिस्टम की रक्षा करता है
Linux में वॉचडॉग नामक एक बिल्ट-इन फीचर है, जो इस सिद्धांत पर काम करता है कि सिस्टम नियमित रूप से सिग्नल भेजता है जो दर्शाता है कि यह अभी भी सक्रिय है। जिस क्षण यह सिस्टम से सिग्नल प्राप्त नहीं करता, वॉचडॉग मान लेता है कि कोई समस्या है और रीबूट ट्रिगर करता है। यह फीचर 1990 के दशक के मध्य से Linux पर मौजूद है और मुख्य रूप से उन सिस्टम्स पर उपयोग किया जाता है जहां अपटाइम नॉन-नेगोशिएबल है, जैसे सर्वर और एम्बेडेड सिस्टम।
कुछ सिस्टम्स पर, वॉचडॉग /dev/watchdog डिवाइस फाइल के माध्यम से एक्सपोज्ड होता है, जबकि अन्य पर, यह /dev/watchdog0 हो सकता है। एक प्रोसेस को इस फाइल में लिखकर काउंटडाउन टाइमर को रीसेट करना होता है। अगर प्रोसेस लिखना बंद कर देता है, तो इसका आमतौर पर मतलब है कि सिस्टम फ्रीज है या संसाधनों को एक भगोड़े प्रोसेस द्वारा खपत किया गया है। ऐसे मामले में, टाइमर समाप्त हो जाता है, और इसी तरह रीबूट ट्रिगर होता है।
दो प्रकार के वॉचडॉग होते हैं: हार्डवेयर और सॉफ्टवेयर (सॉफ्टडॉग)। पहला मदरबोर्ड पर एक हार्डवेयर तंत्र हो सकता है। यह हमेशा सिस्टम रीसेट करने में सक्षम होता है, यहां तक कि उन समयों पर भी जब कर्नेल पूरी तरह से लॉक हो जाता है। अगला सॉफ्टवेयर संस्करण है जो कर्नेल के अंदर चलता है और किसी अतिरिक्त हार्डवेयर की आवश्यकता नहीं होती। हालांकि, यह संस्करण आपको नहीं बचाता अगर कर्नेल क्रैश होता है।
प्रकार
समर्पित हार्डवेयर की आवश्यकता
हार्ड कर्नेल क्रैश से बचाता है
के लिए सबसे उपयुक्त
हार्डवेयर वॉचडॉग
हां
हां
सर्वर, हमेशा-ऑन महत्वपूर्ण सिस्टम
सॉफ्टवेयर (सॉफ्टडॉग)
नहीं
नहीं
होम सर्वर, VMs, सामान्य-उद्देश्य रिग्स
सॉफ्टवेयर वॉचडॉग उन सामान्य फ्रीज के लिए बहुत अच्छा है जिनका अधिकांश सेटअप सामना करते हैं, जैसे लोड स्पाइक्स, मेमोरी एग्जॉशन, और भगोड़े प्रोसेस। हालांकि, यह फीचर डिफ़ॉल्ट रूप से अक्षम है, और इसे गलत तरीके से कॉन्फिगर करने से अनावश्यक और दोहराए गए सिस्टम रीबूट हो सकते हैं। उस ने कहा, यह मेरी पसंदीदा छिपी हुई लिनक्स विशेषताओं में से एक बन गया है।
मिनटों में ऑटोमैटिक क्रैश रिकवरी सेट करना
एक व्यावहारिक वॉचडॉग सेटअप जो वास्तव में काम करता है
सॉफ्टडॉग लगभग सभी लिनक्स डिस्ट्रोस पर पहले से काम करता है, इसलिए आपको नए हार्डवेयर की आवश्यकता नहीं है। आपका प्रारंभिक बिंदु इस कमांड के साथ मॉड्यूल लोड करना है:
sudo modprobe softdog
यह सुनिश्चित करने के लिए कि सॉफ्टडॉग रीबूट के बाद बना रहता है, /etc/modules (Debian/Ubuntu) पर फाइल खोलें, उस पर अपनी लाइन पर softdog जोड़ें, और इसे सेव करें। अब वॉचडॉग डेमन इंस्टॉल करें और इसे नीचे दिए गए कमांड्स के साथ सक्षम करें:
sudo apt install watchdog
sudo systemctl enable --now watchdog
इसके साथ हो जाने पर, /etc/watchdog.conf खोलने का समय है और कुछ महत्वपूर्ण सेटिंग्स पर ध्यान केंद्रित करें:
सेटिंग
यह क्या नियंत्रित करता है
व्यावहारिक प्रारंभिक बिंदु
interval
सिस्टम कितनी बार चेक-इन करता है
10 सेकंड
max-load-1
रीबूट से पहले लोड एवरेज सीलिंग
~6× CPU कोर काउंट
min-memory
रीबूट से पहले फ्री मेमोरी फ्लोर
~512 पेज (~2MB)
max-load-1 के लिए लोड एवरेज एक मिनट का है। यह मान आपके डिवाइस पर सक्रिय रूप से CPU समय के लिए प्रतिस्पर्धा करने वाली प्रक्रियाओं की संख्या को दर्शाता है। इसका तात्पर्य है कि यदि 4-कोर मशीन का लोड 4.0 है, तो हर कोर पूरी तरह से कब्जा कर लिया गया है। 6x अपने कोर काउंट का उपयोग करना सुरक्षित है ताकि आपके सिस्टम के पास वैध फटने के लिए हेडरूम हो, जो लॉकअप से पहले हो सकता है।
यह भी ध्यान दें कि min-memory मेमोरी पेज में निर्दिष्ट है, मेगाबाइट्स में नहीं। एक पेज आमतौर पर x86_64 सिस्टम पर 4KiB होता है। इसके अनुसार, 512 पेज लगभग 2MB फ्री मेमोरी होंगे।
एक बार जब आप इन कॉन्फिगरेशन को पूरा कर लेते हैं, तो कमांड systemctl status watchdog चलाएं ताकि डेमन चल रहा है या नहीं सत्यापित कर सकें, और कमांड journalctl -u watchdog आपको इसकी गतिविधि की समीक्षा करने की अनुमति देता है।
वॉचडॉग सर्विस को रोकने से रीबूट ट्रिगर नहीं होगा — डेमन बाहर निकलने पर /dev/watchdog को साफ तरीके से बंद कर देता है, जो सुरक्षित रूप से टाइमर को निष्क्रिय कर देता है। वास्तव में यह टेस्ट करने के लिए कि वॉचडॉग आपके सिस्टम को रीबूट करेगा, आपको एक वास्तविक विफलता स्थिति का अनुकरण करना होगा, जैसे निरंतर लोड स्पाइक।
हर क्रैश को रीबूट की आवश्यकता नहीं होती
systemd को टूटी हुई सेवाओं को सेकंड में ठीक करने दें
कई विफलताएं हैं जिन्हें systemd सेकंड में संभाल सकता है जिनके लिए सिस्टम को रीबूट करने की आवश्यकता नहीं होती। एक उदाहरण एक सर्विस हो सकती है जो क्रैश हो जाती है, अप्रत्याशित रूप से बाहर निकलती है, या प्रतिक्रिया देना बंद कर देती है। आप चेक लागू कर सकते हैं ताकि सब कुछ मूल यूनिट को छुए बिना रीबूट ट्रिगर न करे। नीचे दिए गए कमांड को चलाएं, सर्विस नाम जोड़कर:
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 की सीमाओं से परे गलत होता है तो रीस्टार्ट ट्रिगर करने के लिए इसके ऊपर बैठता है।
इस संयोजन का मतलब है कि आपको हर बार जब कुछ गलत होता है तो उपलब्ध नहीं रहना पड़ता, और यह सर्वर प्रबंधन को एक अधिक सुखद उपक्रम बनाता है। साथ ही, उन विशिष्ट लिनक्स कमांड्स को सीखने पर विचार करें जो अधिकांश सिस्टम समस्याओं को ठीक करने में आपकी मदद करते हैं।