कामको स्थिति सफलता भन्छ, लगले पूरा भएको रन देखाउँछ, र डेटा पुरानो वा अनुपस्थित छ। यो संयोजनले सामान्यतया तालिकाबद्ध काम आफूलाई चाहिने बाटो बिना सुरु भयो र तल कुनै कुराले असफलता निल्यो भन्ने बुझाउँछ। समयमै चल्ने तालिकाले नेटवर्क तयार थियो कि थिएन भन्ने कुरा केही भन्दैन। यी दुई तथ्यबीचको खाडल नै यो असफलता बस्ने ठाउँ हो।

प्रवेश रनको हो, cron फाइलको अस्तित्वको होइन।

हरियो रन पूरा भएको काम होइन

तालिकाकारले प्रक्रिया सुरु भयो र पछि बाहिरियो भनी नोट गर्छ; त्यो प्रक्रिया आफ्नो अस्तित्वको कारण बनेको स्रोतमा पुग्यो कि पुगेन भन्ने उसलाई थाहा छैन। असफल जडानलाई खाली नतिजा मान्ने, वा त्रुटि समातेर शून्यसँग बाहिरिने स्क्रिप्ट सधैं स्वस्थ देखिनेछ। लक्षण रातो स्थिति होइन; यो हराइरहेको कामसँग जोडिएको विश्वसनीय स्थिति हो।

कसरी जाँच्ने भन्ने निर्णय गर्नु अघि रनलाई वास्तवमै के चाहिन्छ भन्ने नाम दिनुहोस्। ब्याकअपलाई निजी DNS र प्रमाणित अन्त्यबिन्दु चाहिन सक्छ, केवल टनेल प्रक्रिया होइन।

जडान जाँच्नुहोस्, इन्टरफेसको नाम होइन

tun0 नामको इन्टरफेस महत्त्वपूर्ण सत्र बिना अस्तित्वमा हुन सक्छ, र अर्को जडानले त्यो नामको स्वामित्व लिन सक्छ। काम निर्भर रहेको विशिष्ट वस्तु जाँच्नुहोस्: एउटा प्रोफाइल पहिचान, एउटा सेवा उदाहरण, वा स्रोतविरुद्ध एउटा सानो स्वीकृत कार्य। जाँचलाई समयमा सीमित राख्नुहोस्, र प्रमाणहरूलाई प्रक्रिया आर्गुमेन्ट र निदान लगबाट बाहिर राख्नुहोस्।

डिस्कनेक्टको नतिजा पनि परिभाषित गर्नुहोस्। सामान्य छुट, छोटो विन्डोभित्र पुनः प्रयास, र अपरेटरलाई देखिने छुटेको म्याद तीन फरक उत्तर हुन्, र दोहोरिने तालिकाले तीमध्ये छनोट गर्दैन।

छुट र असफलता फरक नतिजा हुन्

[Service]
Type=oneshot
User=worker
ExecCondition=/usr/local/libexec/check-office-path
ExecStart=/usr/local/bin/private-task

systemd परिनियोजनमा, ExecCondition= कामको भार अघि त्यो जाँचकर्ता चलाउँछ। यसको बाहिरिने व्यवहार विशिष्ट छ: शून्य अगाडि बढ्छ, एकदेखि 254 सम्मका कोडले एकाइलाई असफल चिन्ह लगाउनु बिना बाँकी सुरु आदेशहरू छाड्छन्, र 255 वा असामान्य अन्त्यले यसलाई असफल बनाउँछ। यसले तीन फरक संकेत दिन्छ, जुन जाँचकर्ताको सम्झौता जानाजान तिनमा म्याप गरिएको खण्डमा मात्र उपयोगी हुन्छ। सफलतालाई पुनः परिभाषित गर्ने सेटिङहरूले चित्र बदल्न सक्छन्, त्यसैले म्यापिङ अभिलेख गर्नुहोस्।

छुटहरू लेख्नु नै डिजाइनलाई इमानदार बनाउँछ। कतै नदेखिने छुटेको रन सफल भएको रनबाट छुट्याउन सकिँदैन, र प्रत्येक जाँचकर्ता त्रुटिलाई शान्त छुट मान्नुले बिग्रिएको परिनियोजनलाई अनिश्चितकालसम्म लुकाउँछ।

पूरै रनको रक्षा गर्नुहोस्, केवल सुरुवातको होइन

तयारी जाँचले प्रक्षेपण अघि संसारको अवलोकन गर्छ; यसले पछि हरेक सकेटमा पहरा दिँदैन। जब यो कामका लागि सिधा बाटो कहिल्यै स्वीकार्य हुँदैन, DNS, IPv6 र टनेलको आफ्नै यातायात समेट्ने, निरन्तर लागू हुने स्वीकृत निकास नीति जोड्नुहोस्। होस्टको विश्वव्यापी IPv6 स्थिति बदल्नु काममा सीमित नीतिको विकल्प होइन।

नयाँ घटनाले अझै चलिरहेको कामलाई ओभरल्याप गर्न सक्छ कि भनी निर्णय गर्नुहोस्, त्यो नियम कामको भारको मालिकसँग राख्नुहोस्, र डेटा कार्यका लागि पुनः प्रयास सुरक्षित बनाउनुहोस्। डिस्कनेक्टमा काम रोक्नुले काम सीमित गर्छ तर फलब्याक ट्राफिकबारे केही ग्यारेन्टी दिँदैन।

तीन अवस्थामा कार्यप्रवाह स्वीकार गर्नुहोस्: तयार बाटो, अनुपलब्ध बाटो, र रनको बीचमा हानि। यसभन्दा कमले तालिकाको परीक्षण गर्छ, कामको होइन।

सम्बन्धित लेखहरू