क्या os.FindProcess प्रक्रिया के अस्तित्व को सत्यापित करने के लिए पर्याप्त है?
ऐसे परिदृश्यों में जहां किसी प्रक्रिया का पीआईडी ज्ञात है, आपको आश्चर्य हो सकता है कि क्या इसका उपयोग किया जा रहा है os.FindProcess अकेले ही प्रक्रिया के अस्तित्व को पर्याप्त रूप से स्थापित करता है। यह आलेख इस विशिष्ट परिदृश्य पर प्रकाश डालता है और एक वैकल्पिक दृष्टिकोण प्रदान करता है जो ऑपरेटिंग सिस्टम सिद्धांतों का लाभ उठाता है।
os.FindProcess सीमाएं
आयात ( "लकड़ी का लट्ठा" "ओएस/कार्यकारी" "strconv" ) func checkPid(pid int) बूल { बाहर, गलती := exec.Command("kill", "-s", "0", strconv.Itoa(pid)).CombinedOutput() यदि त्रुटि !=शून्य { लॉग.प्रिंट्लन(त्रुटि) } यदि स्ट्रिंग (बाहर) == "" { सच लौटें // पीआईडी मौजूद है } विवरण झूठा है }
import ( "log" "os/exec" "strconv" ) func checkPid(pid int) bool { out, err := exec.Command("kill", "-s", "0", strconv.Itoa(pid)).CombinedOutput() if err != nil { log.Println(err) } if string(out) == "" { return true // pid exist } return false }उदाहरण के लिए, यदि किल -एस 0 कमांड के परिणामस्वरूप "ऑपरेशन की अनुमति नहीं है" त्रुटि होती है, तो यह सुझाव देता है कि प्रक्रिया मौजूद है लेकिन प्रयास करने वाले उपयोगकर्ता के स्वामित्व में नहीं है सत्यापन।
निष्कर्ष
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3