পিডোফ এবং পিগ্রেপের মধ্যে পার্থক্য কী?


13

আমি যখন কোনও আদেশের সাথে কোনও প্রক্রিয়ার নাম হিসাবে যুক্তি দিয়ে ব্যবহার করি তখন উভয়ই ঠিক একই সংখ্যাটি দেয়। তারা কি একই আদেশ? তারা কি দুটি পৃথক আদেশ রয়েছে যা একই কাজ করে? তাদের মধ্যে একজনের কি অন্যের জন্য একজন উপনাম রয়েছে?

pidof firefox
pgrep firefox

উত্তর:


18

প্রোগ্রামগুলি pgrepএবং pidofএকেবারে একই জিনিস নয় তবে তারা খুব মিল similar উদাহরণ স্বরূপ:

$ pidof 'firefox'
5696
$ pgrep '[i]ref'
5696
$ pidof '[i]ref'
$ printf '%s\n' "$?"
1

আপনি দেখতে পাচ্ছেন, এর pidofজন্য কোনও মিল খুঁজে পেতে ব্যর্থ হয়েছেন [i]ref। এটি কারণ হিসাবে pidof programপরিচিত একটি প্রোগ্রামের সাথে যুক্ত সমস্ত প্রক্রিয়া আইডির একটি তালিকা ফেরত দেয় program। অন্যদিকে, কোনও pgrep reপ্রোগ্রামের সাথে যুক্ত সমস্ত প্রক্রিয়া আইডির একটি তালিকা প্রত্যাবর্তন করে যার নাম নিয়মিত প্রকাশের সাথে মেলে re

তাদের সর্বাধিক প্রাথমিক ফর্মগুলিতে সমতা আসলে:

$ pidof 'program'
$ pgrep '^program$'

আরও একটি দৃ concrete় উদাহরণ হিসাবে বিবেচনা করুন:

$ ps ax | grep '[w]atch'
   12 ?        S      0:04 [watchdog/0]
   15 ?        S      0:04 [watchdog/1]
   33 ?        S<     0:00 [watchdogd]
18451 pts/5    S+     0:02 watch -n600 tail log-file
$ pgrep watch
12
15
33
18451
$ pidof watch
18451

4

ফক্স উল্লেখ করেছে যে pgrepনিয়মিত এক্সপ্রেশন ব্যবহার করে অনুসন্ধান করে, যখন pidofতা হয় না।

তবে pgrepআরও অনেক বিকল্প উপলব্ধ রয়েছে:

  • আপনার সাথে -u "$UID"কেবলমাত্র বর্তমান ব্যবহারকারীর অন্তর্ভুক্ত প্রক্রিয়াগুলি মেলে।
  • সঙ্গে --parentযদি আপনি একটি প্রদত্ত প্রক্রিয়ার চাইল্ড প্রসেস জানতে পারেন।
  • আপনি মিলে যাওয়া প্রক্রিয়াগুলি --oldestবা নির্বাচন করতে পারেন --newest
  • ... এবং ম্যান পৃষ্ঠায় তালিকাভুক্ত আরও অনেকে ...

আসুন জেনে নেওয়া যাক প্রতিটি প্রক্রিয়া কোন প্যাকেজের অন্তর্ভুক্ত (অ্যাপটি সিস্টেমে):

$ dpkg -S "$(which pidof)"
sysvinit-utils: /bin/pidof

$ dpkg -S "$(which pgrep)"
procps: /usr/bin/pgrep
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.