লিনাক্সে কোন প্রক্রিয়াটি কোনও ফাইল ব্যবহার করছে তা কীভাবে আবিষ্কার করবেন?


92

লিনাক্সে ব্যবহার করে একটি ফাইল সরিয়ে দেওয়ার চেষ্টা করেছি rm -rf file_name, তবে ত্রুটিটি পেয়েছে:

rm: file_name not removed.  Text file busy

কোন প্রক্রিয়াটি এই ফাইলটি ব্যবহার করছে তা আমি কীভাবে জানতে পারি?

উত্তর:


137

আপনি fuserকমান্ডটি ব্যবহার করতে পারেন , যেমন:

fuser file_name

আপনি ফাইলটি ব্যবহার করে প্রক্রিয়াগুলির একটি তালিকা পাবেন।

আরও বিশদ আউটপুট পেতে আপনি এটির সাথে বিভিন্ন পতাকা ব্যবহার করতে পারেন।

আপনি ফুসারের উইকিপিডিয়া নিবন্ধে বা manপৃষ্ঠাগুলিতে আরও তথ্য পেতে পারেন।


আমি এটি চেষ্টা করেছি: ফুসার -i / হোম / বিন / লাইব। তবে এটি পেয়েছে: ফুজার: অবৈধ বিকল্প - i / home / bin / lib: 27674t
খ্রিস্ট

4
@ খরিস, হতে পারে যে সমস্ত fuserবাস্তবায়ন একরকম নয় বা একইভাবে কাজ করে। এমনকি -iপসিক্সে সংজ্ঞায়িত করা হলেও, আপনি যে বিশেষ প্রয়োগটি ব্যবহার করছেন সেটি উইকিপিডিয়া নিবন্ধে বর্ণিত মত বিকল্পগুলির অগত্যা নয়। উদাহরণস্বরূপ, আমি এখনই এআইএক্স ব্যবহার করছি fuserএবং এই সিস্টেমে উপলব্ধটির -iবিকল্পটিও নেই।
jimm-cl

কিছু কারণে, তন্ন তন্ন fuserনা lsofএকটি Virtualbox অতিথি আমাকে জন্য কাজ করা হয়েছে। এই উত্তরটি আমাকে বাঁচিয়েছিল।
কায়েল

34

@ জিমের উত্তরটি সঠিক - fuserআপনি যা চান তা তা।

lsofপ্রক্রিয়াটি হ্রাস করতে আপনার অতিরিক্ত অনুমতি (অতিরিক্ত কমান্ড না চালিয়ে) প্রয়োজন হলে অতিরিক্ত (বা বিকল্পভাবে) ব্যবহারকারীর নাম সহ আরও তথ্য পেতে আপনি ব্যবহার করতে পারেন । (অবশ্যই, যদি প্রক্রিয়াটি হত্যার বিষয়টি আপনি চান fuserতবে এটি তার -kবিকল্পটি সহ এটি করতে পারেন option বিকল্পের সাথে আপনি fuserঅন্যান্য সংকেত ব্যবহার করতে পারেন -s- বিশদটির জন্য ম্যান পৃষ্ঠাটি চেক করুন))

উদাহরণস্বরূপ, একটি tail -F /etc/passwdউইন্ডোতে চলমান সহ :

ghoti@pc:~$ lsof | grep passwd
tail      12470    ghoti    3r      REG  251,0     2037 51515911 /etc/passwd

মনে রাখবেন যে lsofনির্দিষ্ট সকেটগুলি কী কী প্রক্রিয়াগুলি ব্যবহার করছে তা অনুসন্ধান করার জন্য আপনি ব্যবহার করতে পারেন । আপনার অস্ত্রাগারে থাকার জন্য একটি দুর্দান্ত সরঞ্জাম।


পিআইডি কোন ক্ষেত্র?
nmz787

@ nmz787 - lsof | head -1সমস্ত শিরোনাম দেখতে।
ঘোটি

@ nmz787 দ্বিতীয় ক্ষেত্রটি পিআইডি।
forthe

lsof | grep -E "PID|<your_process_name>"আপনি যে প্রশ্নটি করতে চান এটি প্রথম লাইন এবং প্রক্রিয়া উভয়ই দেখায়
রবিন হু

0
$ lsof | tree MyFold

সংযুক্ত ছবিতে যেমন প্রদর্শিত হয়েছে:

এখানে চিত্র বর্ণনা লিখুন


4
কিভাবে কাজ করে? নেই treestdin থেকে কিছু পড়া? যদি হ্যাঁ হয়, তবে তা ইনপুটটি কী করে?
14:36

man lsof - lsof কমান্ডের জন্য ম্যানুয়াল প্রদর্শন করে, lsof - ফাইলগুলি তালিকাভুক্ত করে, প্রক্রিয়া দ্বারা খোলার ফাইলগুলি সম্পর্কে তার স্ট্যান্ডার্ড আউটপুট ফাইলের তথ্যের তালিকা এবং ফলাফল গাছের কাঠামোতে দেখা যায়। আপনার স্পষ্টভাবে কী পরীক্ষা করা উচিত তা পরীক্ষা করা উচিত
ব্লুন্ড ধারণাটি

আমার প্রশ্ন সম্পর্কে tree, না lsof। আমি যতদূর বুঝতে পেরেছি, treeস্ট্যান্ডার্ড ইনপুট থেকে পড়া হয় না, সুতরাং আপনি যখন চালান তখন আউটপুট বাতিলlsof হয় । যদি এটি সঠিক হয় তবে তার মতোই , যা কেবল বিষয়বস্তু প্রদর্শন করে তবে কোনও প্রক্রিয়া দ্বারা কোন ফাইলগুলি খোলার তা নয়। lsof | tree ...lsof | tree MyFoldtree MyFold
ডায়প করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.