जब कोई प्रॉक्सी चल रही हो तब शटडाउन का अटकना विरले ही VPN की गड़बड़ होती है, भले ही VPN स्क्रीन पर दिखने वाली आखिरी चीज हो। प्रॉक्सी के पीछे की एप्लिकेशनें अभी भी ऐसे मार्ग का इंतजार कर रही हैं जो अभी गायब होने वाला है, और टनल रखने वाली यूनिट से अभी उसे बंद करने को नहीं कहा गया है। जो धीमी सेवा जैसा दिखता है वह आमतौर पर क्रम की समस्या होती है। क्रम किसी भी टाइमआउट बदलाव से ज्यादा ऐसे मामले सुलझाता है।

बाहर की ओर उल्टे क्रम में काम करें: पहले उपभोक्ता, फिर प्रॉक्सी, फिर टनल, और हर एक को वह घटक रोकता है जिसने उसे शुरू किया था।

कुछ भी रोकने से पहले यूनिटों की सूची बनाएँ

सामान्य रन में शामिल एप्लिकेशन यूनिट, प्रॉक्सी यूनिट और VPN स्वामी लिख लें। अपना अलग टियरडाउन रखने वाला कोई भी रिज़ॉल्वर या सहायक जोड़ें, क्योंकि रात दो बजे लोग यही भूलते हैं। उस सूची के बिना, आप जो पहला स्टॉप कमांड लिखते हैं वह बेतरतीब ढंग से एक शिकार चुन लेता है।

नाम कमजोर सबूत हैं। उपयोगकर्ता प्रॉक्सी, सिस्टम प्रॉक्सी और किसी दूसरे खाते की टनल एक ही नाम साझा कर सकती हैं जबकि उनके जीवनचक्र पूरी तरह असंबंधित हों।

काम पूरा करें, फिर उपभोक्ता को रोकें

नियोजित स्टॉप एप्लिकेशन से शुरू होता है: उसे अपने अनुरोध पूरे करने या रद्द करने दें, फिर उसकी सेवा यूनिट के माध्यम से प्रॉक्सी रोकें। अगर टनल जाने के बाद एप्लिकेशन को चलते रहना चाहिए, तो इसे जानबूझकर व्यवस्थित करें, बजाय उसे ऐसे मार्ग से लटकता छोड़ने के जो अभी गायब होने वाला है।

स्टॉप के दौरान जो अनुरोध चल रहे थे वे रिकॉर्ड में होने चाहिए, क्योंकि अगली बार शुरू होने पर पुनःप्रयास का तूफान वहीं से आता है।

ExecStop और ExecStopPost अलग औजार हैं

ExecStop= समकालिक स्टॉप क्रिया है; ExecStopPost= वह सफाई है जो विफल शुरुआत के बाद भी चलती है। जो स्टॉप कमांड केवल किसी प्रक्रिया को संकेत भेजकर लौट आता है, वह systemd को आगे बढ़ने देता है जबकि उपभोक्ता अभी खाली कर रहा होता है। जो किसी भी हालत में होना ही चाहिए वह बाद वाले प्रकार में आता है, और जो स्टॉप को रोकना चाहिए वह समकालिक वाले में। पैकेज फ़ाइल को उसी जगह संपादित करने के बजाय प्रभावी यूनिट और उसके ड्रॉप-इन जाँचें।

निर्भरता ग्राफ स्टॉप कार्यों को क्रम में लगाता है। यह असमकालिक स्क्रिप्ट को समकालिक नहीं बनाता, और न ही किसी दूरस्थ एप्लिकेशन को उसका डेटा सहेजने के लिए मजबूर करता है।

स्टॉप को सीमित करें और सीमा की कीमत जानें

TimeoutStopSec= स्टॉप कमांड और सेवा के अपने अंत, दोनों को सीमित करता है, और सीमा खत्म होने पर systemd जबरन मारने की ओर बढ़ता है। मान एप्लिकेशन के वास्तविक खाली होने के व्यवहार से चुनें, और लिख लें कि सीमा लगने पर क्या खो सकता है। मशीन को जल्दी बंद होना चाहिए इसलिए चुना गया कोई अंक वास्तव में डेटा-हानि की सेटिंग है।

जब स्टॉप अभी भी धीमा हो, तो यूनिट, उसकी चाइल्ड प्रक्रियाएँ, जर्नल का अंतराल और टाइमआउट का परिणाम दर्ज करें। हर टाइमआउट छोटा करना या व्यापक मार-काट की ओर बढ़ना ही वह तरीका है जिससे स्वच्छ शटडाउन अगली बूट में भ्रष्ट अवस्था बन जाते हैं।

स्वामी के माध्यम से डिस्कनेक्ट करें, फिर तीन केस जाँचें

उपभोक्ता बंद हो जाने के बाद, टनल का स्वामी जो प्रबंधक है उससे डिस्कनेक्ट करने को कहें: systemd इंस्टेंस, NetworkManager का सक्रिय कनेक्शन, या विक्रेता की सेवा। किसी असंबंधित OpenVPN प्रक्रिया को मारना जरूरी नहीं कि उस सत्र को हटा दे जिसने मार्ग दिया था, और रीस्टार्ट नीति वाली प्रॉक्सी आपके द्वारा मार्ग खोलते समय अनुरोध फिर बना सकती है। शुरू करने से पहले उस नीति को नियोजित स्टॉप के साथ समन्वयित करें।

सामान्य स्टॉप, सक्रिय अनुरोध वाला स्टॉप, और वह स्टॉप जिसमें टनल पहले विफल होती है—तीनों जाँचें। समयसीमा वाला दोहराया जा सकने वाला क्रम एक बार काम करने वाले तेज शटडाउन से बेहतर है।

संबंधित लेख