যদি কোনও প্রক্রিয়াটির জন্য আমার কাছে পিআইডি নম্বর থাকে (একটি ইউএনআইএক্স মেশিনে), তবে আমি কীভাবে এর সম্পর্কিত প্রক্রিয়াটির নামটি জানতে পারি?
আমাকে কি করতে হবে?
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