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