কোন প্রক্রিয়া চলাকালীন কোন ফাইলগুলি খোলা ছিল


0

একটি লিনাক্স সিস্টেমে, আমি তার জীবদ্দশায় একটি নির্দিষ্ট প্রক্রিয়া দ্বারা খোলার (পড়তে বা লিখতে) সমস্ত ফাইলের একটি তালিকা পেতে চাই। শুরু থেকে শেষ পর্যন্ত তাঁর জীবনকাল বেশ কয়েক ঘন্টা হতে পারে।

আমি কার্নেলটি ডিবাগ করতে চাই না।

Http://valgrind.org/ এর মতো সিমুলেশন প্রোগ্রাম ব্যবহার করতে আমার আপত্তি নেই

আমি lsof ব্যবহার করার চেষ্টা করেছি, তবে আমি নিশ্চিত নই যে সমস্ত ফাইল যে কখনও খোলা ছিল সেগুলি তালিকাভুক্ত রয়েছে কিনা।

উত্তর:


1

আপনি স্ট্রেস ব্যবহার করতে পারেন :

strace -e open command

উদাহরণ:

$ স্ট্রেস-কে খোলা
("/ etc / ld.so.cache", O_RDONLY) খুলুন = 3
খোলা ("/ lib / libc.so.6", O_RDONLY) = 3
খোলা ("/ usr / lib / লোকেল / লোকেল-সংরক্ষণাগার", O_RDONLY) = 3
খোলা ("/ var / রান / utmp", O_RDONLY | O_CLOEXEC) = 3
খোলা ("/ usr / lib / gconv / gconv-modules.cache", O_RDONLY) = 3
খোলা ("/ ইত্যাদি / স্থানীয় সময়", O_RDONLY) = 3
সাইরাস কনসোল 2011-12-08 15:34 (: 0)
সাইরাস: 0 2011-12-08 15:34

2

পরামর্শের 1 টিডিবিট ... ম্যান-পৃষ্ঠাটি পড়ুন। বিশেষত lsof এর জন্য "-p" প্যারামিটারটি দেখুন।

    -p s     This option excludes or selects the listing of  files  for  the
             processes

"এস" হ'ল আপনি যে প্রক্রিয়াটির কথা বলছেন তার প্রক্রিয়া আইডি। আপনি এটি একটি সাধারণ কাজ থেকে ছিনিয়ে নিতে পারেন

ps ax |grep yourprocessname

এবং প্রথম নম্বর ছিনতাই। তারপর কেবল একটি

lsof -p your-snagged-number

এবং voila। সমস্ত ফাইল একটি প্রক্রিয়া দ্বারা ব্যবহৃত use

এবং না, এটিতে বর্তমানে খালি থাকা ফাইলগুলি অন্তর্ভুক্ত রয়েছে। স্ট্রেস আরও ভাল বিকল্প হতে পারে ... তবে আরও জটিল।


কোনও ফাইল খোলা যেতে পারে যা কোনও সময়ে খোলা যেতে পারে a সুতরাং lsof এই ক্ষেত্রে প্রশ্নের বাইরে। লসফের ফলাফলটি পুল করা একটি বিকল্প, তবে তবুও ভাল নয়
— জ্লাতকো

0

আপনি যদি টাস্কের জন্য স্ট্রেসটি আপনার সিস্টেমে ইনস্টল করেন তবে:

strace -o strace.log <Your command>

ফলস্বরূপ লগ ফাইলটিতে, আপনি "ওপেন (") জন্য খোলা কোনও ফাইল সন্ধান করতে গ্রেপ করতে পারেন file আপনার আগ্রহী অন্যান্য বিষয়গুলির জন্য আপনি গ্রেপ করতে পারেন যেমন ফাইল রিড / রাইটস, নেটওয়ার্ক অ্যাক্সেস এবং অন্যান্য ক্রিয়াকলাপ।

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