lsof -p পিআইডি বনাম lsof | গ্রেপ পিআইডি


12

আমি lsof কমান্ডের আউটপুট বুঝতে পারি না।

আমি যখন লিখি

lsof -p PID

আমি 4 লাইন পাই এবং কখন লিখি

lsof | grep PID

আমি কয়েকশ লাইন পাই।

এটি কি একই ফলাফল ফেরত দেওয়া উচিত নয়?

আপনার প্রতিক্রিয়ার জন্য ধন্যবাদ। এখানে আউটপুট। দেখে মনে হচ্ছে এটি উপ-প্রক্রিয়া বা এই কার্যগুলির অর্থ কী?

lsof -p 29076
COMMAND   PID  USER   FD      TYPE DEVICE SIZE/OFF NODE NAME
java    29076  pr    cwd   unknown                      /proc/29076/cwd (readlink: Permission denied)
java    29076  pr    rtd   unknown                      /proc/29076/root (readlink: Permission denied)
java    29076  pr    txt   unknown                      /proc/29076/exe (readlink: Permission denied)
java    29076  pr   NOFD                                /proc/29076/fd (opendir: Permission denied)

lsof |grep 29076|head -20
java      29076        pr  cwd   unknown                          /proc/29076/cwd (readlink: Permission denied)
java      29076        pr  rtd   unknown                          /proc/29076/root (readlink: Permission denied)
java      29076        pr  txt   unknown                          /proc/29076/exe (readlink: Permission denied)
java      29076        pr NOFD                                    /proc/29076/fd (opendir: Permission denied)
java      29076   300  pr  cwd   unknown                          /proc/29076/task/300/cwd (readlink: Permission denied)
java      29076   300  pr  rtd   unknown                          /proc/29076/task/300/root (readlink: Permission denied)
java      29076   300  pr  txt   unknown                          /proc/29076/task/300/exe (readlink: Permission denied)
java      29076   300  pr NOFD                                    /proc/29076/task/300/fd (opendir: Permission denied)
java      29076   329  pr  cwd   unknown                          /proc/29076/task/329/cwd (readlink: Permission denied)
java      29076   329  pr  rtd   unknown                          /proc/29076/task/329/root (readlink: Permission denied)
java      29076   329  pr  txt   unknown                          /proc/29076/task/329/exe (readlink: Permission denied)
java      29076   329  pr NOFD                                    /proc/29076/task/329/fd (opendir: Permission denied)
java      29076   330  pr  cwd   unknown                          /proc/29076/task/330/cwd (readlink: Permission denied)
java      29076   330  pr  rtd   unknown                          /proc/29076/task/330/root (readlink: Permission denied)
java      29076   330  pr  txt   unknown                          /proc/29076/task/330/exe (readlink: Permission denied)
java      29076   330  pr NOFD                                    /proc/29076/task/330/fd (opendir: Permission denied)
java      29076   331  pr  cwd   unknown                          /proc/29076/task/331/cwd (readlink: Permission denied)
java      29076   331  pr  rtd   unknown                          /proc/29076/task/331/root (readlink: Permission denied)
java      29076   331  pr  txt   unknown                          /proc/29076/task/331/exe (readlink: Permission denied)
java      29076   331  pr NOFD                                    /proc/29076/task/331/fd (opendir: Permission denied)

উত্তর:


7

প্রকৃত আউটপুট না দেখলে ঠিক কী ঘটছে তা বলা শক্ত কিন্তু আমি অনুমান করছি যে এটি lsof -p PIDকমান্ডটি নির্দিষ্ট পিআইডি দ্বারা খোলা ফাইলগুলি প্রিন্ট করছে যখন lsof | grep PID'পিআইডি' যেখানে কোনও লাইন প্রিন্ট করছে। লাইনের যে কোনও জায়গায় অবস্থিত। উদাহরণস্বরূপ, আপনি যদি পিআইডি = 123 অনুসন্ধান করছেন তবে আপনার grepবিকল্পটি পিআইডি'র 1231, 1232, 1233 ইত্যাদির জন্য লাইনগুলি প্রিন্ট করবে এবং সেই সাথে যে কোনও ফাইল যা 123 সহ ফোল্ডারে অবস্থিত তাদের পুরো পথের যে কোনও জায়গায়।

সম্পাদনা: আপনার নির্দিষ্ট উদাহরণে পার্থক্যটি হ'ল lsofথ্রেড দ্বারা খোলা ফাইলগুলিকে উপেক্ষা করা। grepউদাহরণে আউটপুটটির দিকে নজর দিলে তৃতীয় কলামটি হ'ল 'টিআইডি' বা থ্রেড আইডি। টিআইডিবিহীন লাইনগুলি যখন আপনি -pবিকল্পটি ব্যবহার করছিলেন তখন আপনি কী দেখছিলেন match একটি টিআইডি সহ লাইনগুলি (অর্থাত্ অন্যান্য থ্রেড দ্বারা খোলা লাইনগুলি) অতিরিক্ত।


আসলে, টিআইডি ম্যান পেজগুলিতে "টাস্ক আইডেন্টিফিকেশন নম্বর" হিসাবে উল্লেখ করা হয়, এটি অবশ্যই কোনও থ্রেড আইডি নয়।
মিলজেন মিকিক

2

lsof - ফাইল খুলুন তালিকা করুন, lsof এর জন্য ম্যান পৃষ্ঠাটি পড়ার চেষ্টা করুন #man lsof

lsof -p PID পিআইডি-র প্রসেস আইডির সাথে সম্পর্কিত ফাইলগুলি খোলে lists

কোনও বিকল্পের অভাবে, lsof সমস্ত সক্রিয় প্রক্রিয়া সম্পর্কিত সমস্ত খোলার ফাইল তালিকাভুক্ত করে। আপনি যখন lsof | grep PIDএটি করেন, এটি সমস্ত সক্রিয় প্রক্রিয়া সম্পর্কিত সমস্ত উন্মুক্ত ফাইল তালিকাভুক্ত করে এবং পিআইডি নম্বর গ্রেপ করে, যা পিআইডি নিজেই এবং অন্য কোথাও মিলে যায়, যেখানে পিআইডি অন্যান্য পিআইডি'র অংশ হিসাবে উপস্থিত হয় এবং পিআইডি-র শিশু প্রক্রিয়াও হতে পারে, এবং শীঘ্রই.

অতএব, আপনি যদি ব্যবহার করতে চান lsof | grep PIDতবে আপনার পুরো শব্দটির মিলের মতো পিআইডি হুবহু মিলে যাওয়া উচিত lsof | grep -w PID, তবে পিআইডির অন্যান্য শিশু প্রক্রিয়া থাকলে এটি আরও লাইনগুলিতে ফলিত হবে।


0

আমি আমার সিস্টেমে এটি চেষ্টা করেছি এবং উভয় কমান্ডই একই তালিকা তৈরি করে, আমি আপনাকে পরামর্শ দিচ্ছি যে প্রক্রিয়াটির স্থিতিশীলতা স্থিতিশীল রয়েছে তা নিশ্চিত করার জন্য আপনি দু'বার কমান্ড একটানা কয়েকবার চেষ্টা করে দেখতে পারেন। ম্যান পেজ এবং আপনার ফলাফলগুলি অনুসারে, আমি কেবল এটিই বুঝতে পারি।


0

Lsof এর কয়েকটি সংস্করণে একটি থ্রেড আইডি অন্তর্ভুক্ত রয়েছে। এটি আউটপুটে আপাতদৃষ্টিতে টিআইডি কলাম শিরোনাম দ্বারা নির্ধারণ করা যেতে পারে। যেমন একটি আউটপুট এন্ট্রিগুলির একটি সদৃশ জন্ম দেয় যেহেতু lsof সম্ভাব্যভাবে প্রতিটি থ্রেডের জন্য সদৃশ নকলকে দেখায়।

https://support.datastax.com/hc/en-us/articles/209826153-lsof-shows-Cassandra-is-holding-a-large-amount-of-files-open

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