जाँच करने का तरीका है fuser -vm /mnt/dir
, जिसे जड़ के रूप में चलाया जाना चाहिए। यह आपको बताएगा कि कौन सी प्रक्रियाएं आरोह बिंदु तक पहुंच रही हैं।
एक विकल्प है lsof /mnt/dir
, जो माउंट पर प्रत्येक खुली फ़ाइल दिखाएगा। फिर से रूट के रूप में सर्वश्रेष्ठ रन।
आप इनमें से किसी को भी गैर-रूट के रूप में चला सकते हैं, लेकिन तब आउटपुट आपकी प्रक्रियाओं तक सीमित रहेगा - अन्य उपयोगकर्ताओं से केवल चुपचाप नहीं दिखाए जाएंगे, भले ही वे फाइल सिस्टम को अनमाउंट करने से रोकेंगे।
उदाहरण:
Watt:~# fuser -vm /mnt/Zia/src
USER PID ACCESS COMMAND
/mnt/Zia/src: root kernel mount /mnt/Zia/src
anthony 24909 ..c.. bash
anthony 25041 F.c.. gvim
"एक्सेस" फ़ील्ड आपको बताती है कि इसकी एक्सेस कैसे की जाती है। इस मामले में, कर्नेल में इसे माउंट के रूप में उपयोग किया जाता है (डुह, लेकिन अनमाउंट केवल इसके साथ ठीक होगा)। bash
वर्तमान वर्किंग डाइरेक्टरी के रूप में है ( cd
अनमाउंट से पहले एक अलग डाइरेक्टरी में होगी) और जीवीएम दोनों में करंट डाइरेक्टरी होती है और एक फाइल ओपन होती है (उस गविम को बंद करने की आवश्यकता होगी)।
Watt:~# lsof /mnt/Zia/src
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 24909 anthony cwd DIR 0,26 12288 3527682 /mnt/Zia/src/perl (zia.vpn.home:/home/anthony/src)
gvim 25041 anthony cwd DIR 0,26 12288 3527682 /mnt/Zia/src/perl (zia.vpn.home:/home/anthony/src)
gvim 25041 anthony 6u REG 0,26 16384 3526219 /mnt/Zia/src/perl/.utf8.c.swp (zia.vpn.home:/home/anthony/src)
इस आउटपुट में, आप bash और gvim (प्रकार के रूप में DIR
) के लिए वर्तमान निर्देशिका देख सकते हैं । आप यह भी देख सकते हैं कि लिखने के लिए कौन सी फ़ाइल gvim खुली है।
समस्या को कैसे बल दें:
fuser
एक -k
विकल्प है जो SIGKILL
माउंट का उपयोग करके प्रत्येक प्रक्रिया को एक संकेत (डिफ़ॉल्ट:) भेजेगा । यह माउंट को व्यस्त होने से रोकने के लिए एक अधिक शक्तिशाली तरीका है। (और निश्चित रूप से, आप क्या सावधान रहें SIGKILL
!)
umount
-l
एक आलसी प्रदर्शन करने का एक विकल्प है। माउंट को फ़ाइल सिस्टम नेमस्पेस से हटा दिया जाएगा (ताकि आप इसे /mnt/Zia/src
उदाहरण के तहत अब और नहीं देखेंगे ), लेकिन यह माउंट रहता है, इसलिए इसे एक्सेस करने वाले प्रोग्राम ऐसा करना जारी रख सकते हैं। जब अंतिम कार्यक्रम इसे एक्सेस करता है, तो वास्तव में अनमाउंट होगा।
अनमाउंट फेल होने का एक अंतिम निश्चित कारण है, और वह है एनएफएस सर्वर डाउन होना। यहां आप उपयोग कर सकते हैं umount -f
, लेकिन यदि आप ऐसा करते हैं तो आप डेटा हानि का जोखिम उठाते हैं। (क्लाइंट ने लिखा हो सकता है कि सर्वर द्वारा अभी तक पुष्टि नहीं की गई है, और उन लिखों को खारिज कर दिया जाएगा। हालांकि, एप्लिकेशन को पहले ही बता दिया गया है कि लेखन सफल है।)