লিনাক্সে বর্তমানে লোড হওয়া ভাগ করা অবজেক্টগুলি কীভাবে দেখবেন?


34

আমার দুটি সম্পর্কিত সম্পর্কিত প্রশ্ন রয়েছে:

  • একটি ভাগ করা লাইব্রেরি বর্তমানে লোড হয়েছে কিনা আমি কীভাবে দেখতে পারি? (অর্থাত্ সিস্টেম-ব্যাপী, প্রক্রিয়া অজ্ঞাব্য)
  • কোনও প্রক্রিয়া দ্বারা লোড করা সমস্ত ভাগ করা লাইব্রেরি আমি কীভাবে দেখতে পারি?

উত্তর:


40

আপনি উভয় সঙ্গে করতে পারেন lsof। কোন লাইব্রেরিটি কীভাবে খোলা বা ম্যাপ করা আছে তা দেখার জন্য:

lsof /path/to/lib.so

এবং কোনও প্রক্রিয়া কোন ফাইল (ভাগ করে নেওয়া লাইব্রেরি সহ) খুলতে এবং / অথবা ম্যাপ করেছে তা দেখার জন্য:

lsof -p <pid>

22

কোনও প্রক্রিয়াতে কী লোড হয়েছে তা দেখার আরেকটি উপায় /proc/PID/mapsফাইলটি দেখে। এটি আপনার ঠিকানা স্পেসে ম্যাপযুক্ত ভাগ করা জিনিসগুলি সহ সমস্ত কিছু ম্যাপ করা দেখায়।


আমার এম্বেড করা এআরএম প্ল্যাটফর্মটিতে সূক্ষ্ম কাজ করেছে। যদিও ব্যাসিবক্স বাস্তবায়নের lsofপ্রয়োজনীয় কার্যকারিতা ছিল না।
অ্যালেক্স চে

7
sudo grep libcairo.so /proc/*/maps

/proc/PID/maps রিচ দ্বারা উল্লিখিত সমস্ত একবারে অন্বেষণ করার একটি দুর্দান্ত উপায় । নমুনা আউটপুট:

/proc/8390/maps:7f0a9afae000-7f0a9b0bc000 r-xp 00000000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b0bc000-7f0a9b2bc000 ---p 0010e000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b2bc000-7f0a9b2bf000 r--p 0010e000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b2bf000-7f0a9b2c0000 rw-p 00111000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9afae000-7f0a9b0bc000 r-xp 00000000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b0bc000-7f0a9b2bc000 ---p 0010e000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b2bc000-7f0a9b2bf000 r--p 0010e000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b2bf000-7f0a9b2c0000 rw-p 00111000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6

আরও awkএবং বাশ-ফু আরও আউটপুট আরও পরিমার্জন করতে পারে।

এই পদ্ধতিটিতে উবুন্টু 18.04-তে একটি হ্যাক আপেরdlopen সাথে এই ন্যূনতম সেটআপটি দিয়ে পরীক্ষিত লাইব্রেরিগুলিও প্রদর্শন করা হয় sleep(1000)


4

আপনি পরবর্তী কমান্ডটি রুট দ্বারা চালাতে পারেন এবং একটি সম্পূর্ণ তালিকা দেখতে পারেন,

cat /proc/*/maps | awk '{print $6;}' | grep '\.so' | sort | uniq

এটি তাদের ব্যবহারকারীর জন্য যা lsof নেই।


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