যদি কোনও প্রক্রিয়াটির জন্য আমার কাছে পিআইডি নম্বর থাকে (একটি ইউএনআইএক্স মেশিনে), তবে আমি কীভাবে এর সম্পর্কিত প্রক্রিয়াটির নামটি জানতে পারি?
আমাকে কি করতে হবে?
ps -fp PID
পূর্ণ কমান্ড দেখাবে
যদি কোনও প্রক্রিয়াটির জন্য আমার কাছে পিআইডি নম্বর থাকে (একটি ইউএনআইএক্স মেশিনে), তবে আমি কীভাবে এর সম্পর্কিত প্রক্রিয়াটির নামটি জানতে পারি?
আমাকে কি করতে হবে?
ps -fp PID
পূর্ণ কমান্ড দেখাবে
উত্তর:
সমস্ত POSIX- অনুবর্তী সিস্টেমগুলিতে এবং লিনাক্স সহ আপনি ব্যবহার করতে পারেন ps
:
ps -p 1337 -o comm=
এখানে, প্রক্রিয়াটি তার পিআইডি দিয়ে নির্বাচন করে -p
। -o
বিকল্প আউটপুট ফরম্যাট নির্দিষ্ট করে, comm
কমান্ড নাম, যার অর্থ।
আরও দেখুন: ps
- ওপেন গ্রুপ বেস স্পেসিফিকেশন ইস্যু 6
command
পরিবর্তে ব্যবহার করে এটি স্থির করে।
$ ps -p 1 -o comm=
Init $ ps -p 1 -o command=
/ sbin / init; যার অর্থ এটি প্রায় 15 টি অক্ষর নয়, সম্ভবত বাইনারিটির নাম বনাম এর সম্পূর্ণ পথ।
comm
বাইনারিটির নাম দেয় এবং command
আর্গুমেন্ট 0 দেয়
আপনি প্রক্রিয়া নাম বা প্রক্রিয়া-আইডি বা পিড থেকে ব্যবহৃত কমান্ড খুঁজে পেতে পারেন
/proc/pid/cmdline
করেছে
cat /proc/pid/cmdline
এখানে পিডটি হ'ল পিড যার জন্য আপনি এক্সপ্লেরিয়ালের জন্য নামটি খুঁজতে চান
:
# ps aux
................
................
user 2480 0.0 1.2 119100 12728 pts/0 Sl 22:42 0:01 gnome-terminal
................
................
পিড 2480 দ্বারা ব্যবহৃত প্রক্রিয়াটির নাম খুঁজে পেতে আপনি ব্যবহার করতে পারেন
# cat /proc/2480/cmdline
gnome-terminal
কোনও নির্দিষ্ট পিড ব্যবহার করে প্রোগ্রামটির পথ পেতে আপনি ব্যবহার করতে পারেন:
ps ax|egrep "^ [PID]"
বিকল্পভাবে আপনি ব্যবহার করতে পারেন:
ps -a [PID]
ps -a
টার্মিনালের সাথে সম্পর্কিত সমস্ত প্রক্রিয়াগুলির তালিকা তৈরি করুন, এটি কোনও ইনপুট নেয় না।
ps
সংস্করণে নির্ভরশীল procps version 3.2.7
।
আপনি পিএমএপ ব্যবহার করতে পারেন। আমি পিআইডি 6649 অনুসন্ধান করছি And এবং অতিরিক্ত প্রক্রিয়া বিশদটি কেটে দিচ্ছি।
$ pmap 6649 | head -1
6649: /usr/lib64/firefox/firefox
ps
কমান্ডের সাহায্যে আপনি যা দেখবেন তা সবই ঠিক আছে java
, তবে বাকি পরামিতিগুলি সম্পূর্ণরূপে প্রদর্শিত হবে pmap
।
আপনি পিএস এর সাথে মিশ্রিত করেও awk ব্যবহার করতে পারেন
ps aux | awk '$2 == PID number for a process { print $0 }'
উদাহরণ:
root@cprogrammer:~# ps aux | awk '$2 == 1 { print $0 }'
root 1 0.0 0.2 24476 2436 ? Ss 15:38 0:01 /sbin/init
হেড লাইন প্রিন্ট করতে আপনি ব্যবহার করতে পারেন
ps --headers aux |head -n 1 && ps aux | awk '$2 == 1 { print $0 }'
(or)
ps --headers aux |head -n 1; ps aux | awk '$2 == 1 { print $0 }'
root@cprogrammer:~# ps --headers aux |head -n 1 && ps aux | awk '$2 == 1 { print $0 }'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 24476 2436 ? Ss 15:38 0:01 /sbin/init
ps ax | grep 1
বাস্তবে এটি init
প্রক্রিয়াটি ফিরে আসে কিনা তা চেষ্টা করে দেখুন । (আমার ক্ষেত্রে এটি 119 টি লাইন
ps aux | awk 'NR==1 || $2==PID'
- এবং {print $0}
এটি বলার দরকার নেই কারণ এটি ডিফল্ট। আপনি যেমন মন্তব্য করেছেন তবে -p
তা আরও ভাল।
থেকে Simmilar slhck এর উত্তর কিন্তু কমান্ড আমন্ত্রণ পরিবর্তে ফাইল অপারেশন উপর নির্ভর:
MYPID=1
cat "/proc/$MYPID/comm"
cat /proc/1/comm
=> আরবি, এসবিএন / আরআইএন নয়। তার উত্তরটির দীর্ঘতর সংস্করণ অন্তর্ভুক্ত রয়েছে। তবে যাইহোক +1 করুন।
আশ্চর্যজনকভাবে, কেউ পিএস-এর জন্য -f (পূর্ণ কমান্ড) বিকল্পটি উল্লেখ করেনি। আমি এটি (সমস্ত) দিয়ে ব্যবহার করতে এবং ফলাফলগুলি গ্রেপ করতে পাইপ করতে চাই যাতে আমি আমার অনুসন্ধানকে সংকীর্ণ করতে পারি।
ps -ef | grep <PID>
আপনার সিস্টেমে প্রচুর সংস্থান নিচ্ছে এমন কেউ চলছে এমন সম্পূর্ণ কমান্ডগুলি দেখার জন্য এটি খুব দরকারী। এটি আপনাকে কমান্ডের কাছে দেওয়া বিকল্পগুলি এবং যুক্তি প্রদর্শন করবে।
-e -f
উপলভ্য রয়েছে, সেখানে grep
অনেকগুলি মিথ্যা ম্যাচ উত্পাদন করতে পারে যেমন grep 33
পিড = 933 বা 339, পিপিড = 33 বা 933 বা 339, সময়সীমা ৩৩ সেকেন্ড বা ৩৩ মিনিট, বা প্রোগ্রামের নাম বা যুক্তি যুক্ত রয়েছে - যার মধ্যে রয়েছে grep
নিজেই। সমস্ত (এএফাইক) ps
আছে -p
, তাই ঠিক ps -fp 33
।
নিম্নলিখিত কমান্ডটি সহ আমি সবচেয়ে সহজ পদ্ধতিটি পেয়েছি:
ps -awxs | grep pid
ps -p${pid}
চূড়ান্তভাবে অদক্ষ হওয়া ছাড়াও এটি প্রচুর পরিমাণে মিথ্যা ইতিবাচকতা গ্রহণ করবে - grep
নিজেই সহ ।
পিআইডি সন্ধানের জন্য সহজ স্ক্রিপ্ট তৈরি করেছে এবং ব্যাশ স্ক্রিপ্টগুলির মধ্যে
ব্যবহার করুন ... সাবধানতার সাথে ব্যবহার করুন !!
স্ক্রিনশট: http://pastebin.com/Cm9YH67U
আঁদ্রে
ps
বা ব্যবহার করতে পারেনls -l /proc/$PID/exe