क्या यह संभव है कि एक फ़ोल्डर /proc/4587मौजूद है भले ही कोई प्रक्रिया नहीं है जिसमें PID 4587 है?
क्या यह संभव है कि एक फ़ोल्डर /proc/4587मौजूद है भले ही कोई प्रक्रिया नहीं है जिसमें PID 4587 है?
जवाबों:
यदि /procकेवल procमाउंट है (और कोई भी ओवरले के साथ चालें नहीं खेल रहा है), नहीं, एक पीड-आधारित फ़ोल्डर केवल तब तक मौजूद है जब तक कि संबंधित प्रक्रिया कुछ स्थिति में मौजूद है (एक ज़ोंबी के रूप में सहित)। वास्तव में, प्रक्रिया आईडी के लिए निर्देशिका प्रविष्टि वापस करने से ठीक पहले, कर्नेल प्रक्रिया के अस्तित्व को फिर से सत्यापित करता है - इसलिए तत्काल एक निर्देशिका प्रविष्टि वापस कर दी जाती है, इसी प्रक्रिया अभी भी है। किसी निर्देशिका को एक्सेस करना भी इसी प्रक्रिया को देखकर शुरू होता है। (यदि रेखा संख्या बदलती है, तो देखें proc_pident_instantiateऔर proc_pident_lookup।)
/procबाद में परिणामों को सूचीबद्ध करने और उपयोग करने के कारण आप समस्या में भाग सकते हैं (बाद में कुछ माइक्रोसेकंड भी): जब आप सूची बनाते हैं तो एक प्रक्रिया चल सकती है /proc, और परिणामों पर कार्य करने से पहले रुक जाएं।
wait()उन पर कॉल नहीं किया गया है?
psप्रक्रिया को दिखाता है , तो इसकी /procनिर्देशिका मौजूद होनी चाहिए।
psपहुँचता /procहै।