मैंने उपयोग करके लिनक्स में एक फाइल को हटाने की कोशिश की rm -rf file_name, लेकिन त्रुटि मिली:
rm: file_name not removed. Text file busy
मैं कैसे पता लगा सकता हूं कि कौन सी प्रक्रिया इस फ़ाइल का उपयोग कर रही है?
जवाबों:
आप fuserकमांड का उपयोग कर सकते हैं , जैसे:
fuser file_name
आपको फ़ाइल का उपयोग करके प्रक्रियाओं की एक सूची प्राप्त होगी।
अधिक विस्तृत आउटपुट प्राप्त करने के लिए, आप इसके साथ विभिन्न झंडे का उपयोग कर सकते हैं।
आप fuser के विकिपीडिया लेख में या manपृष्ठों में अधिक जानकारी पा सकते हैं ।
fuserकार्यान्वयन समान नहीं हों, या समान तरीके से काम करते हों। यहां तक कि अगर -iपोसिक्स में परिभाषित किया गया है, तो आप जिस विशेष कार्यान्वयन का उपयोग कर रहे हैं, जरूरी नहीं कि वे वही विकल्प हैं जो विकिपीडिया लेख में वर्णित हैं। उदाहरण के लिए, मैं अभी AIX का उपयोग कर रहा हूं, और fuserइस प्रणाली में उपलब्ध -iविकल्प के पास भी नहीं है ।
@ jim का जवाब सही है - fuserजो आप चाहते हैं।
इसके अतिरिक्त (या वैकल्पिक रूप से), lsofप्रक्रिया को मारने के लिए आपको (अतिरिक्त आदेश चलाने के बिना) अनुमति की आवश्यकता होने पर, उपयोगकर्ता नाम सहित अधिक जानकारी प्राप्त करने के लिए उपयोग कर सकते हैं । (निश्चित रूप से, अगर प्रक्रिया को मारना है जो आप चाहते हैं, fuserतो वह अपने -kविकल्प से कर सकता है। आप विकल्प के fuserसाथ अन्य संकेतों का उपयोग कर सकते हैं -s- विवरण के लिए मैन पेज की जांच करें।)
उदाहरण के लिए, tail -F /etc/passwdएक विंडो में चलने के साथ :
ghoti@pc:~$ lsof | grep passwd
tail 12470 ghoti 3r REG 251,0 2037 51515911 /etc/passwd
ध्यान दें कि आप यह lsofजानने के लिए भी उपयोग कर सकते हैं कि कौन सी प्रक्रियाएं विशेष सॉकेट्स का उपयोग कर रही हैं। आपके शस्त्रागार में एक उत्कृष्ट उपकरण है।
lsof | head -1सभी हेडर देखने के लिए।
lsof | grep -E "PID|<your_process_name>"1 पंक्ति और उस प्रक्रिया को दिखाता है जिसे आप क्वेरी करना चाहते हैं।
treestdin से कुछ भी पढ़ा है? यदि हाँ, तो यह उस इनपुट के साथ क्या करता है?
tree, नहीं lsof। जहां तक मैं समझता हूं, treeमानक इनपुट से नहीं पढ़ता है, इसलिए जब आप चलते हैं तो आउटपुट lsofको छोड़ दिया जाता है lsof | tree ...। यदि यह सही है, तो lsof | tree MyFoldवही है tree MyFold, जो केवल सामग्री को प्रदर्शित करता है, लेकिन कुछ प्रक्रियाओं द्वारा नहीं खोला जाता है।