यदि आपका Mac कहता है कि कोई फ़ाइल उपयोग में है या आपको उसे स्थानांतरित नहीं करने दे रहा है, तो पहले उन ऐप्स की जाँच करें जिनमें वह खुली हो सकती है। सटीक उत्तर के लिए, फ़ाइल के पूरे पाथ के साथ अंतर्निहित Terminal कमांड lsof का उपयोग करें; इसका आउटपुट उस प्रोसेस की पहचान कर सकता है जिसने फ़ाइल को खुला रखा हुआ है। फिर उस ऐप को सामान्य रूप से बंद करें और फ़ाइल ऑपरेशन को फिर से आज़माएं। macOS ऐसा कोई Finder बटन प्रदान नहीं करता जो हमेशा ज़िम्मेदार ऐप का नाम बताए।
पहले, जाँचें कि क्या फ़ाइल वास्तव में खुली है
Apple सुझाव देता है कि जब किसी आइटम को स्थानांतरित या कॉपी न किया जा सके, तो यह सुनिश्चित करें कि वह किसी अन्य ऐप में खुला न हो। संभावित ऐप्स देखें—जैसे कि कोई दस्तावेज़ संपादक (document editor), इमेज व्यूअर, मीडिया प्लेयर, या पूर्वावलोकन (preview) दिखाने वाली कोई विंडो—और ऐप के भीतर से फ़ाइल को बंद करें। पहले किसी भी बदलाव को सेव करें। यदि आपको फ़ाइल पर एक लॉक आइकन दिखाई देता है, तो वह एक अलग दस्तावेज़-लॉक सेटिंग हो सकती है; खुली फ़ाइल और लॉक की गई फ़ाइल अलग-अलग समस्याएँ हैं। Apple का स्थानांतरण और कॉपी करने संबंधी मार्गदर्शन दोनों जाँचों का वर्णन करता है।
Finder अलर्ट कभी-कभी किसी ऐप का नाम बता सकता है, लेकिन यह केवल यह भी रिपोर्ट कर सकता है कि आइटम उपयोग में है। Activity Monitor चल रहे ऐप्स और प्रक्रियाओं को सूचीबद्ध करता है, और कुछ गैर-प्रतिक्रियाशील (unresponsive) प्रक्रियाओं को फ़्लैग करता है, लेकिन यह कोई खोजने योग्य सूची नहीं है जो यह बताए कि किस प्रक्रिया ने किसी विशेष फ़ाइल को खोल रखा है। CPU या मेमोरी उपयोग के आधार पर अनुमान लगाने के बजाय, किसी प्रक्रिया पर कार्रवाई करने के लिए इसका उपयोग तब करें जब आपको उस पर संदेह करने का कोई कारण मिल जाए।
Terminal के साथ प्रक्रिया की पहचान करें
lsof कमांड का अर्थ है "list open files" (खुली फ़ाइलों की सूची)। इसके दस्तावेज़ीकरण में किसी विशिष्ट फ़ाइल का उपयोग करने वाली प्रक्रियाओं को ढूँढना शामिल है, और यह macOS का समर्थन करता है। lsof प्रोजेक्ट दस्तावेज़ीकरण इसका मूल प्रारूप देता है: lsof /path/to/file।
Finder में, फ़ाइल ढूँढें और उसका नाम और स्थान सुनिश्चित करने के लिए File > Get Info चुनें। उस स्थान और फ़ाइल नाम से पूरा पाथ तैयार करें। जहाँ डिस्क फ़ॉर्मेट इसे लागू करता है, वहाँ पाथ केस-सेंसिटिव (case-sensitive) होते हैं; पूरे पाथ को उद्धरण चिह्नों (quotation marks) के अंदर रखने पर पाथ में स्पेस होने से कोई समस्या नहीं होती है।
Applications > Utilities से Terminal खोलें, फिर उदाहरण पाथ को वास्तविक पाथ से बदलते हुए यह कमांड चलाएँ:
lsof "/Users/yourname/Documents/Project Notes/report.pdf"
- परिणाम पढ़ें।
COMMANDकॉलम प्रक्रिया या ऐप का नाम देता है, औरPIDइसकी प्रोसेस आईडी है।NAMEकॉलम में वह फ़ाइल पाथ दिखना चाहिए जिसे आपने खोजा था। यदि एक से अधिक पंक्तियाँ या प्रक्रियाएँ दिखाई देती हैं, तो सभी मेल खाने वाले नामों को नोट करें: एक से अधिक प्रक्रियाओं में एक फ़ाइल खुली हो सकती है। किसी प्रक्रिया का नाम ऐप के सामान्य नाम से भिन्न हो सकता है, इसलिए क्या बंद करना है यह तय करने से पहले Activity Monitor में उस सटीक नाम को खोजें।
यह कमांड केवल उन्हीं संदर्भों की रिपोर्ट करता है जिनकी वह जाँच कर सकता है। यदि यह कोई मेल खाने वाली पंक्ति नहीं लौटाता है, तो हो सकता है कि ऐप ने फ़ाइल को पहले ही रिलीज़ कर दिया हो, आपका पाथ गलत हो, या macOS आपके उपयोगकर्ता खाते को संबंधित प्रक्रिया की जाँच करने की अनुमति न दे रहा हो। पाथ की जाँच करें और चेतावनी मौजूद रहने के दौरान पुनः प्रयास करें। यदि आप कमांड को समझते हैं और किसी अन्य उपयोगकर्ता की प्रक्रिया की जाँच करने की आवश्यकता है, तो sudo lsof "/full/path/to/file" एडमिनिस्ट्रेटर पासवर्ड मांग सकता है; उन्नत (elevated) एक्सेस अधिक जानकारी प्रकट कर सकता है, लेकिन इसका उपयोग केवल इस रीड-ओनली जाँच के लिए ही किया जाना चाहिए। lsof का दस्तावेज़ीकरण यह चेतावनी भी देता है कि प्रक्रिया की स्थिति बदलने पर यह फ़ाइलों को देखने से चूक सकता है। एक खाली परिणाम इस बात का प्रमाण नहीं है कि किसी भी ऐप ने कभी उस फ़ाइल का उपयोग नहीं किया था।
पहचानी गई ऐप को सुरक्षित रूप से बंद करें
काम को सेव करें और पहले ऐप के Quit कमांड का उपयोग करें। यदि यह प्रतिक्रिया नहीं देता है, तो Activity Monitor खोलें, नाम से प्रक्रिया खोजें, उसे चुनें, और Stop बटन पर क्लिक करें। Force Quit करने से पहले Quit चुनें। Apple का कहना है कि Force Quit प्रक्रिया को तुरंत समाप्त कर देता है; न सहेजा गया काम खो सकता है, और उस प्रक्रिया पर निर्भर अन्य ऐप्स में समस्याएँ आ सकती हैं। कुछ प्रक्रियाएँ macOS से संबंधित होती हैं या अन्य ऐप्स का समर्थन करती हैं, इसलिए केवल आउटपुट में दिखने के कारण किसी अपरिचित सिस्टम प्रक्रिया को फ़ोर्स क्विट न करें। Apple के Activity Monitor निर्देश इस अंतर को और प्रक्रियाओं को पदानुक्रमित (hierarchically) रूप से देखने के तरीके को समझाते हैं।
संभावित प्रक्रिया को बंद करने के बाद, उसी पाथ पर lsof को फिर से चलाएँ। यदि मेल खाने वाली प्रक्रिया हट गई है, तो फ़ाइल को स्थानांतरित करने, कॉपी करने या हटाने का पुनः प्रयास करें। यदि यह बनी रहती है, तो अन्य मेल खाने वाले प्रक्रिया नामों की जाँच करें और कोई बड़ा कदम उठाने से पहले उनकी फ़ाइलों को सामान्य रूप से बंद करें।
यदि कोई ऐप दिखाई न दे
परिणाम न मिलने से यह साबित नहीं होता कि समस्या ऐप लॉक की ही है। जाँचें कि क्या आप मूल फ़ाइल के सटीक पाथ को खोज रहे हैं, फिर Apple द्वारा प्रलेखित अन्य कारणों पर विचार करें: एक लॉक किया गया आइटम, अपर्याप्त स्थान, डेस्टिनेशन अनुमतियाँ, या कोई ऐसा बाहरी ड्राइव फ़ॉर्मेट जिस पर macOS लिख नहीं सकता है। नेटवर्क या बाहरी स्टोरेज पर, कनेक्टिविटी या वॉल्यूम की स्थिति भी ऑपरेशन को प्रभावित कर सकती है। रीस्टार्ट करने से पुराना (stale) संदर्भ साफ़ हो सकता है, लेकिन पहले काम को सेव करें और सरल कारणों की जाँच करने के बाद ही इसका उपयोग करें। आइटम को स्थानांतरित करने या कॉपी करने के लिए Apple के समस्या निवारण चरण इनमें से कई विकल्पों को कवर करते हैं।
व्यावहारिक क्रम यह है: पाथ को सत्यापित करें, समस्या होने के दौरान lsof का उपयोग करें, पहचानी गई ऐप को साफ़ तौर पर बंद करें, और पुनः प्रयास करें। फ़ोर्स क्विट को अंतिम उपाय के रूप में मानें, और जब अनुमतियाँ या बदलती प्रक्रिया स्थिति ज़िम्मेदार ऐप को छिपा सकती हो, तो कमांड के खाली परिणाम को अनिर्णायक मानें।
स्रोत
यदि आप Mac पर किसी आइटम को स्थानांतरित या कॉपी नहीं कर सकते हैं — Apple सहायता
Mac पर Activity Monitor में किसी ऐप या प्रक्रिया को बंद करें — Apple सहायता
यदि Mac पर कोई ऐप फ्रीज हो जाता है या अप्रत्याशित रूप से बंद हो जाता है — Apple सहायता
lsof (LiSt Open Files) — lsof प्रोजेक्ट