PID फाइल छ, सुरुङ छैन: OpenVPN कहिल्यै चलेको थियो?
बाँकी रहेको PID फाइलले सुरुङ सक्रिय छ कि छैन भन्ने बताउँदैन। यसलाई मेट्नुअघि सेवा, प्रक्रियाको सुरु समय र लन्चरको सम्झौता जाँच्नुहोस्।
लन्चरले PID फाइल पहिले नै भएको कारण OpenVPN सुरु गर्न अस्वीकार गर्दा, कतै सुरुङ चलिरहेको छ भन्ने पढ्नु स्वाभाविक हो। त्यो पाठ पटक-पटक गलत हुने भएकाले केही पनि मेट्नुअघि जाँच्नु उपयुक्त हुन्छ। रनटाइम डाइरेक्टरीको फाइल हिसाब हो, र हिसाब प्रक्रिया नछोड्ने क्र्यास, रिबुट र अधुरा सटडाउनबाट बाँच्छ। दुई प्रश्नले विषय टुंग्याउँछन्: जीवित प्रक्रिया छ कि छैन, र त्यो प्रक्रिया यो इन्स्ट्यान्सको हो कि होइन।
फाइलबाट होइन, सेवाबाट सुरु गर्नुहोस्
अस्वीकार प्रायः OpenVPN आफैंबाट होइन, लन्चरबाट आउँछ। यसले बाटो पढ्छ, त्यहाँ केही भेट्छ र कन्फिगरेसन विश्लेषण गर्नुअघि रोकिन्छ। त्यसैले पहिलो प्रश्न सुरुङको होइन, लन्चरको सम्झौताको हो।
सन्देश छाप्ने युनिट वा स्क्रिप्ट पढ्नुहोस् र तीन कुरा नोट गर्नुहोस्: यसले जाँच्ने बाटो, घोषणा गर्ने सेवा प्रकार, र फाइल लेख्ने जिम्मेवारी यसमा छ कि छैन। आधुनिक युनिटले सरल वा सूचना सुपरिवेक्षण प्रयोग गरी PID फाइललाई कहिल्यै छुँदैन, जबकि पुरानो init स्क्रिप्टले आफैं एउटा बनाउन सक्छ। एउटा मोडेलको जाँच अर्कोमा प्रतिलिपि गर्दा ठ्याक्कै यही प्रकारको अस्वीकार आउँछ। केही व्याख्या गर्नुअघि कुन मोडेल प्रयोग भइरहेको छ पत्ता लगाउनुहोस्।
त्यसपछि मात्र प्रश्न इन्स्ट्यान्स साँच्चै चलिरहेको छ कि भन्ने हुन्छ।
त्यो पहिचान तपाईंको इन्स्ट्यान्सको हो कि जाँच्नुहोस्
फाइलमा भएको संख्याले संख्या लेखिएको प्रमाणित गर्छ। त्यसले त्यो पहिचान भएको प्रक्रिया अहिले छ भनी प्रमाणित गर्दैन, र प्रक्रिया तपाईंको हो भनी पक्कै प्रमाणित गर्दैन, किनकि रिबुटपछि पहिचानहरू फेरि प्रयोग हुन्छन्।
प्रक्रियाको सुरु समय फाइलको समयछापसँग, एक्जिक्युटेबल युनिटको आदेशसँग, र सेवा सदस्यता युनिटको नामसँग तुलना गर्नुहोस्। तीनमध्ये कुनै एकमा बेमेल भए तपाईं सुरुङ होइन, हिसाब हेर्दै हुनुहुन्छ।
कन्टेनर वा धेरै नामस्थान चलाउने होस्टमा पहिचान एक दृश्यमा अर्थपूर्ण र अर्कोमा अनुपस्थित हुन सक्छ। प्रक्रिया नदेख्नु पनि त्यसको अनुपस्थितिको प्रमाण होइन, यदि तपाईंको खाताले त्यसलाई जाँच्न सक्दैन। निष्कर्ष निकाल्नुअघि लन्चरले प्रयोग गर्ने सन्दर्भबाट जाँच्नुहोस्।
systemctl status [email protected]
ps -o pid,lstart,args -p "$(cat /run/openvpn/vpn.pid)"लन्चरले फाइलको बारेमा के गर्ने वाचा गरेको थियो
PIDFile= सेवा प्रबन्धकलाई मुख्य प्रक्रियाको पहिचान कहाँबाट पढ्ने बताउँछ। प्रबन्धकले त्यो फाइल लेख्दैन, तर सटडाउनपछि बाँकी रहेको हटाउँछ, र त्यसैले अधुरो निस्कासनले फाइल छोड्न सक्छ।
जिम्मेवारीको यो विभाजनले मानिसहरूले बग भनी रिपोर्ट गर्ने दुई लक्षण व्याख्या गर्छ। कहिल्यै नदेखिने फाइल भनेको डिमन वा यसको स्क्रिप्टले लेख्न सकेन, सुपरिवेक्षण गलत कन्फिगर भयो भन्ने होइन। स्टपपछि टिक्ने फाइल भनेको सटडाउनको बाटो कहिल्यै पूरा भएन।
सुपरिवेक्षणले मुख्य प्रक्रिया सिधै ट्र्याक गर्न सक्दा यो परम्परा अपनाउन नहुन सुझाव दिने कारण पनि यसले व्याख्या गर्छ। त्यो मार्गदर्शन प्याकेज गरिएको युनिटको प्रकार बदल्ने अनुमति होइन, किनकि डिमनको फोरग्राउन्ड, फोर्किङ वा सूचना व्यवहार युनिटले घोषणा गरेकोसँग मिल्नुपर्छ। डिमन नबदली प्रकार बदल्नुहोस् र सुरुङ चलिरहेको बेला असफलता रिपोर्ट गर्ने युनिट पाउनुहुन्छ, वा उल्टो। जोडी मिलाउनुहोस्, वा दुवै छोड्नुहोस्। systemd सेवा सन्दर्भ ले स्वामित्वको विभाजन वर्णन गर्छ।
सफा सटडाउन र अधुरो निस्कासन
सफा स्टपले डिमनलाई बाहिर निस्कन भन्छ, त्यसको प्रतीक्षा गर्छ र प्रबन्धकलाई आफ्नै हिसाब मिलाउन दिन्छ। अधुरो निस्कासन, मारिएको प्रक्रिया वा सटडाउनको बीचमा रिबुटले त्यो क्रमका भागहरू छोड्छन्, र बाँकी रहने फाइल हो। क्र्यासपछि एउटा भेट्नु भनेको सटडाउन पूरा भएन, केही सुनिरहेको छ भन्ने होइन।
फाइलको समयछाप अन्तिम बुट र युनिटको अन्तिम स्टपसँग तुलना गर्नुहोस्।
त्यसपछि जीवित प्रमाण सिधै जाँच्नुहोस्। VPN पोर्टमा बाँधिएको सकेट र ठेगाना भएको सुरुङ इन्टरफेस केही चलिरहेको प्रमाण हो, रनटाइम डाइरेक्टरीको टेक्स्ट फाइल कहिल्यै नहुने तरिकाले। दुवै छैनन् भने, फाइलले जे दाबी गरे पनि केही चलिरहेको छैन।
बानीले फाइल मेट्ने काम रोक्नुहोस्
कुनै इन्स्ट्यान्सको त्यसमा स्वामित्व छैन र लन्चरले यो व्यवहार अभिलेख गर्छ भनी स्थापित भएपछि यसलाई मेट्नु वैध पुनःप्राप्ति कदम हो।
सुरु गर्नुअघिको स्थायी बानीका रूपमा यसले तपाईंले छल्न खोजेको जाँचलाई नै निष्क्रिय बनाउँछ। यदि हरेक सफा स्टपपछि पुराना फाइल फर्केर आउँछन् भने, लेख्ने र सटडाउन जीवनचक्र बाटोको स्वामित्वमा सहमत छैनन्, र त्यो असहमति नै सुधार्न लायक बग हो।
होस्टमा प्रवेशको स्वतन्त्र बाटो राख्नुहोस्, यसको सामान्य प्रबन्धकमार्फत एउटा इन्स्ट्यान्स सुरु गर्नुहोस्, र पहिलो नतिजा पढ्नुहोस्। अर्को व्यक्तिले काम गर्ने वा आफैंलाई व्याख्या गर्ने युनिट पाउँछ।