QuickLook ने आपकी ड्राइव को बंधक बना रखा है

आपने कुछ फ़ाइलें देखीं, फ़ोल्डर बंद किया, और अब आपकी ड्राइव eject नहीं हो रही। इसकी वजह शायद QuickLook है। जानिए क्या हो रहा है और इसे कैसे ठीक करें।

आपने अपनी external ड्राइव पर कुछ फ़ाइलें कॉपी कीं। आपने Finder विंडो बंद कर दी। आप eject पर क्लिक करते हैं, और macOS मना कर देता है। आपने पाँच मिनट से ड्राइव को छुआ तक नहीं। आख़िर इसका इस्तेमाल कौन कर रहा है?

Activity Monitor में QuickLookUIService देखिए। पूरी संभावना है कि यही आपका दोषी है।

QuickLook क्या कर रहा है

QuickLook वह सिस्टम है जो macOS में फ़ाइल प्रीव्यू चलाता है। Finder में किसी फ़ाइल पर Space दबाइए और आपको एक प्रीव्यू विंडो मिलती है। column view में फ़ाइलें ब्राउज़ कीजिए और आपको थंबनेल दिखते हैं। कोई save dialog खोलिए और वहाँ फिर से वही प्रीव्यू मौजूद हैं। QuickLook हर जगह है।

जब आप कोई फ़ोल्डर ब्राउज़ करते हैं, तो QuickLook उन फ़ाइलों के लिए प्रीव्यू बनाना शुरू कर देता है जो उसे लगता है कि आप देखना चाहेंगे। यह फ़ाइलें पढ़ता है, थंबनेल निकालता है, और बाद में जल्दी एक्सेस के लिए उन्हें कैश कर लेता है। images, PDFs, videos और documents के लिए इसका मतलब है फ़ाइल खोलना और उसकी सामग्री को प्रोसेस करना।

समस्या यह है कि काम ख़त्म हो जाने के बाद QuickLook फ़ाइलों को छोड़ने में सुस्ती कर सकता है। आप किसी दूसरे फ़ोल्डर में चले गए। आपने Finder विंडो पूरी तरह बंद कर दी। पर QuickLookUIService ने अब भी आपकी external ड्राइव पर file handles खोल रखे हैं।

यह eject को क्यों रोकता है

जब तक किसी प्रोसेस की ड्राइव पर कोई फ़ाइल खुली रहती है, macOS आपको उसे eject नहीं करने देता। यह एक सुरक्षा फ़ीचर है। अगर कुछ सक्रिय रूप से पढ़ या लिख रहा है, तो eject करने से डेटा ख़राब हो सकता है या ऐप्लिकेशन क्रैश हो सकता है।

इस वक़्त QuickLook कुछ भी ज़रूरी नहीं पढ़ या लिख रहा। यह बस उन file handles को पकड़े हुए है जिनकी अब उसे ज़रूरत नहीं। पर macOS “किसी फ़ाइल का सक्रिय इस्तेमाल” और “फ़ाइल बंद करना भूल जाना” में फ़र्क़ नहीं करता। handle तो handle है।

नतीजा यह कि पाँच मिनट पहले झलक भर देखे गए प्रीव्यू की वजह से आप अपनी ड्राइव eject नहीं कर पाते।

इसे कैसे ठीक करें

झटपट हल है QuickLookUIService को kill करना। Terminal खोलें और यह चलाएँ:

killall QuickLookUIService

यह प्रोसेस को तुरंत बंद कर देता है। अगली बार जब आपको प्रीव्यू की ज़रूरत होगी, macOS इसे ख़ुद-ब-ख़ुद फिर से चालू कर देगा। अब आपकी ड्राइव सामान्य रूप से eject हो जानी चाहिए।

अगर आप ज़्यादा सटीक होना चाहते हैं, तो पहले पुष्टि कर सकते हैं कि समस्या QuickLook ही है:

sudo lsof /Volumes/YourDriveName | grep -i quicklook

अगर आपको आउटपुट में QuickLookUIService दिखता है, तो यही आपका रोकने वाला है।

आप QuickLook का कैश भी रीसेट कर सकते हैं, जो कभी-कभी ज़िद्दी समस्याओं में मदद करता है:

qlmanage -r cache

यह थंबनेल कैश साफ़ कर देता है और QuickLook सिस्टम को फिर से चालू कर देता है।

videos सबसे बड़े दोषी क्यों हैं

QuickLook video फ़ाइलों को पकड़े रहने में ख़ास तौर पर ज़िद्दी है। जब आप कोई video प्रीव्यू करते हैं, तो QuickLook फ़ाइल खोलता है और इस उम्मीद में खुली रखता है कि आप स्क्रब करना या और देखना चाहेंगे। प्रीव्यू विंडो बंद करने के बाद भी file handle अक्सर बना रहता है।

अगर आपकी external ड्राइव पर video फ़ाइलें हैं और आपने उनमें से किसी का प्रीव्यू किया (जानबूझकर या column view में ब्राउज़ करते हुए अनजाने में), तो इस बात की पूरी संभावना है कि QuickLook eject को रोक रहा है।

यही समस्या बड़ी images और PDFs को भी कुछ हद तक प्रभावित करती है। दरअसल, हर वह फ़ाइल टाइप जिसमें QuickLook को प्रीव्यू बनाने के लिए असली मेहनत करनी पड़ती है।

समस्या से बचाव

QuickLook को आप macOS की बहुत सी कार्यक्षमता खोए बिना सचमुच बंद नहीं कर सकते। पर आप यह ज़रूर घटा सकते हैं कि यह external ड्राइव में कितनी दख़ल देता है।

external ड्राइव ब्राउज़ करते समय list या icon view पर जाएँ। column view चुनी हुई फ़ाइल के लिए QuickLook को अपने आप चालू कर देता है। list और icon view तब तक प्रीव्यू नहीं बनाते जब तक आप साफ़ तौर पर न माँगें।

external ड्राइव पर फ़ाइलें प्रीव्यू करने के लिए Space दबाने से बचें। अगर आपको कोई फ़ाइल जाँचनी है, तो QuickLook इस्तेमाल करने के बजाय उसे सीधे खोलें।

ब्राउज़ करने के बाद थोड़ा रुकें। QuickLook आख़िरकार file handles ख़ुद ही छोड़ देगा। अगर आपने अभी external ड्राइव पर फ़ाइलें ब्राउज़ करना ख़त्म किया है, तो eject करने की कोशिश से पहले 30 सेकंड रुकें।

eject करने से पहले सभी Finder विंडो बंद करें। भले ही Finder विंडो अब आपकी external ड्राइव न दिखा रही हो, उसमें पहले के ब्राउज़िंग से बचे हुए QuickLook references हो सकते हैं।

इनमें से कोई भी बढ़िया समाधान नहीं है। ये एक ऐसी सिस्टम प्रोसेस के लिए जुगाड़ भर हैं जो अपने पीछे ठीक से सफ़ाई नहीं करती।

असली हल

QuickLook के eject रोकने में सबसे खीज दिलाने वाली बात यह है कि आपको पता ही नहीं चलता कि ऐसा हो रहा है। macOS आपको बताता है कि “कुछ” ड्राइव का इस्तेमाल कर रहा है। आप जो कुछ सोच सकते हैं, सब बंद कर देते हैं। फिर भी ड्राइव eject नहीं होती।

आपसे उम्मीद की जाती है कि या तो आप अंदाज़ा लगाएँ कि कौन सी अदृश्य बैकग्राउंड प्रोसेस दोषी है, या जाँच के लिए Terminal कमांड चलाना शुरू करें। ड्राइव अनप्लग करने जैसे रोज़मर्रा के काम के लिए यह बेतुका है।

Ejecta आपको ठीक-ठीक दिखाता है कि eject को क्या रोक रहा है। जब QuickLookUIService समस्या होती है, तो आप उसे तुरंत देख लेते हैं। एक क्लिक प्रोसेस को quit कर देता है और आपकी ड्राइव को छोड़ देता है। न अंदाज़ा, न Terminal, न यह सोच कि कहीं कुछ टूटने तो नहीं जा रहा।

QuickLook एक काम का फ़ीचर है जो कभी-कभार बेवजह की दिक़्क़तें खड़ी कर देता है। file handles छोड़ने में उसकी नाकामी से निपटने के लिए आपको Unix जासूस बनने की ज़रूरत नहीं होनी चाहिए।

अगर आप हर बार Terminal इस्तेमाल नहीं करना चाहते, तो Ejecta आपको ठीक-ठीक दिखाता है कि कौन सा process आपके drive को रोक रहा है — और सीधे आपके menu bar से एक क्लिक में उसे बंद कर देता है।

अभी खरीदें — $9.99