লিনাক্সের 'বাসি ফাইল হ্যান্ডেল' বলতে কী বোঝায়?


103

বলুন আমার একটি টার্মিনাল খোলা আছে, এবং সেই টার্মিনালটির মাধ্যমে আমি cdকিছু ডিরেক্টরিতে সম্পাদন করেছি । অন্য টার্মিনালের মাধ্যমে, আমি সেই ডিরেক্টরি মুছলাম এবং এটি একটি অভিন্ন ব্যাকআপ থেকে পুনরুদ্ধার করব। vimপ্রথম ডিরেক্টরিতে যখন আমি প্রথম টার্মিনাল থেকে কোনও ফাইল চেষ্টা করি , তখন কেন আমি একটি বাসি ফাইল হ্যান্ডেল সম্পর্কে ত্রুটি পাই? এর মানে কী? (সাইড নোটে, আমি খুঁজে পেয়েছি যে এই সমস্যাটির মাধ্যমে বাইপাস করা সম্ভব cd $(pwd)))


আপনি যদি এনএফএস হোস্ট বি থেকে হোস্ট বি-তে কোনও ডিরেক্টরি (এটি নামটির নাম রাখুন) মাউন্ট করেন তবে হোস্ট এ-তে আদিরের জন্য মুছে ফেলা এবং পুনরুদ্ধার জিনিসটি করুন, হোস্টে অ্যাডির অ্যাক্সেস করার সময় আপনি "স্টাইল ফাইল হ্যান্ডেল" ত্রুটিটিও পেতে পারেন বি touchহোস্ট এ- র কমান্ডটি ব্যবহার করে এটি স্বাভাবিক করে তুলতে পারে।
rustyhu

উত্তর:


85

যখন ডিরেক্টরির মোছা হয় তখন inode ডিরেক্টরির জন্য (এবং এটির সামগ্রীগুলি জন্য inodes) পুনর্ব্যবহৃত করা হয়। আপনার শেলটি যে ডিরেক্টরিটির ইনোডে রয়েছে তার পয়েন্টারটি (এবং এর সামগ্রীগুলির ইনোডগুলি) এখন আর বৈধ নয়। ডিরেক্টরিটি যখন ব্যাকআপ থেকে পুনরুদ্ধার করা হয়, তখন পুরানো ইনোডগুলি (প্রয়োজনীয়ভাবে) পুনরায় ব্যবহৃত হয় না ; ডিরেক্টরি এবং এর বিষয়বস্তু এলোমেলো ইনোডে সঞ্চয় করা হয়। কেবল একই জিনিসটি একই থাকে যে প্যারেন্ট ডিরেক্টরিটি পুনরুদ্ধার করা ডিরেক্টরিটির জন্য একই নামটিকে পুনরায় ব্যবহার করে (কারণ আপনি এটি বলেছিলেন)।

এখন যদি আপনি যে ডিরেক্টরিটির মূল শেলটি এখনও নির্দেশ করে সেগুলির বিষয়বস্তুগুলি অ্যাক্সেস করার চেষ্টা করেন তবে এটি সেই অনুরোধটি ফাইল সিস্টেমে মূল ইনোডের অনুরোধ হিসাবে যোগাযোগ করে, যা পরে পুনর্ব্যবহার করা হয়েছে (এবং এমনকি কোনও কিছুর জন্য ব্যবহৃত হতে পারে) সম্পূর্ণ ভিন্ন এখন)। সুতরাং আপনি একটি stale file handleবার্তা পেয়েছেন কারণ আপনি কিছু অস্তিত্বহীন ডেটা চেয়েছিলেন।

আপনি যখন কোনও cdঅপারেশন করেন, শেল আপনি যে গন্তব্যেই এটি দিন তার ইনোডের অবস্থানটি পুনরায় মূল্যায়ন করে। এখন যেহেতু আপনার শেল ডিরেক্টরিটির জন্য নতুন ইনোডটি জানে (এবং এর সামগ্রীগুলির জন্য নতুন ইনোড), ভবিষ্যতে এর সামগ্রীগুলির জন্য অনুরোধগুলি বৈধ হবে।


আহা, সুতরাং এটি কি কেবল অবৈধ / নাল ইনোড পয়েন্টারগুলির চিকিত্সার সিস্টেমের পদ্ধতি?
আইডিডিকিউডি

হ্যাঁ. কী হবে তা জানতে আমি বিশদ সম্পর্কে পর্যাপ্ত পরিমাণে জানি না, উদাহরণস্বরূপ, আপনি এমন একটি ইনোডের রেফারেন্স দেওয়ার চেষ্টা করেছিলেন যা ইতিমধ্যে পুনরায় পুনর্ব্যবহার করা হয়েছে অন্য কোনও কিছুতে উল্লেখ করার জন্য। আপনি কি এখনও একটি বাসি ফাইল হ্যান্ডেল পাবেন? অথবা আপনি অপ্রত্যাশিত ডেটা পাবেন?
dg99

4
আমি মনে করি না যে সিস্টেমটি এটি পুনরায় ব্যবহার করবে যেহেতু কেউ আসলে আই-নোডকে বর্তমান ডিরেক্টরি হিসাবে এটি ব্যবহার করে।
স্যামুয়েল -স্লুন্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.