উত্তর:
ps auxসম্পূর্ণ কমান্ড লাইন (পথ এবং পরামিতি) অন্তর্ভুক্ত করে, যখন pgrep কেবল এক্সিকিউটেবলের নামের প্রথম 15 টি অক্ষর দেখায়ps auxপ্রতিটি প্রক্রিয়াটির সম্পূর্ণ কমান্ড লাইন প্রদান করে, pgrepকেবলমাত্র এক্সিকিউটেবলের নাম দেখায়।
এর অর্থ হ'ল গ্রেপিং ps aux আউটপুট কোনও প্রক্রিয়াটির বাইনারি: যেমন `এর প্যারামিটারে ঘটে যাওয়া কোনও কিছুতেই মেলে`
ps aux | grep php5 মিলবে /usr/share/php5/i-am-a-perl-script.plpgrep php5নাআমার সিস্টেম থেকে একটি উদাহরণ নিন - কেবলমাত্র আমরা এর পরিবর্তে অজগর ব্যবহার করব php5:
ps aux | grep python আমাদের দেয়:izx 2348 0.0 0.7 514928 15644? SL জুন 24:00 / ইউএসআর / বিন / পাইথন / ইউএসআর / লিবিব / unityক্য -লেন্স-ভিডিও / unity ক্য -লেন্স-ভিডিও izx 2444 0.0 0.9 547392 18864? SL জুন ২৪:০ / / ইউএসআর / বিন / পাইথন / ইউএসআর / লিবিব / unityক্য -স্কোপ-ভিডিও-রিমোট / unity ক্য -স্কোপ-ভিডিও-রিমোট রুট 2805 0.0 0.5 95436 12204? এস জুন24 0:00 / ইউএসআর / বিন / পাইথন / ইউএসআর / লিবিব / সিস্টেম-পরিষেবা / সিস্টেম-পরিষেবা-ডি izx 6272 0.0 2.9 664400 60320? এসএনএল জুন ২৪:১:16 / ইউএসআর / বিন / পাইথন / ইউএসআর / বিন / আপডেট-ম্যানেজার - কোনও-ফোকাস-অন-ম্যাপ রুট 11729 0.0 0.9 180508 19516? এস জুন 25 0 পাইথন / ইউএসআর / লিব / সফটওয়্যার-প্রোপার্টি / সফ্টওয়্যার-প্রোপার্টি-ডিবিস
pgrep pythonকেবলমাত্র ফেরত আসে 11729, যা আপনি উপরের তালিকা থেকে দেখতে পাবেন:রুট 11729 0.0 0.9 180508 19516? এস জুন 25 0 পাইথন / ইউএসআর / লিব / সফটওয়্যার-প্রোপার্টি / সফ্টওয়্যার-প্রোপার্টি-ডিবিস
/proc/<pid>/statকিন্তু থেকে/proc/<pid>/cmdline । ঠিক আছে, @ থারসন, আপনি বাগ স্প্রে জিতেছেন, এটি একটি বাগ: পি
pgrepএকটি অযৌক্তিক আদেশ নয়। এটি ভাল এবং ডিজাইন হিসাবে কাজ করে। সমস্যাটি হ'ল আপনি যখন এটি চালাবেন তখন আপনি কোনও বিকল্প হারিয়েছিলেন, আপনি এর pgrepজন্য দোষ দিতে পারবেন না । ব্যবহার ps aux | grep xxxঅবিশ্বাস্য তাই grepআউটপুট থেকে নিজেকে ফিল্টার করতে হ্যাকের প্রয়োজন এবং এর মতো মিথ্যা ধনাত্মকতা দিতে পারে ps aux | grep root।
ps aux | grep xকমান্ড চেয়ে "better" বা ফলাফল দেয় pgrep xমূলত কারণ আপনার আধুনিক সঙ্গে একটি বিকল্প নাই।
সম্পূর্ণ কমান্ড লাইনটি অনুসন্ধান করার -fজন্য কেবল বিকল্পটি ব্যবহার করুন এবং কেবলমাত্র pgrepপ্রক্রিয়া নামটিই এটির ডিফল্ট আচরণ নয়, যেমন:
pgrep -f php5
যে ps | grepনির্মাণের সাথে আপনাকে grepলাইনটি ফিল্টার করতে বা প্যাটার্ন ট্রিকগুলি ব্যবহার করতে হবে তার বিপরীতে, pgrepনকশায় নিজেরাই বেছে নেবেন না।
তদুপরি, আপনার প্যাটার্নটি ps USERকলামে উপস্থিত হওয়া উচিত , আপনি আউটপুটে অযাচিত প্রক্রিয়াগুলি পাবেন, pgrepএই ত্রুটিটি ভুগবেন না।
আপনি যদি কেবল পিডের পরিবর্তে সম্পূর্ণ বিশদ চান তবে আপনি ব্যবহার করতে পারেন:
ps wup $(pgrep -f python)
যা সহজ এবং চেয়ে বেশি নির্ভরযোগ্য
ps aux | grep python | grep -v grep
অথবা
ps aux | grep p[y]thon
-a( --list-full) বিকল্পটি যুক্ত করুন । (পুরাতন পিগ্রেপ কোনও ছিল না -a, এটি করেছিল-fl ))
pgrepসমাধানটি দুর্দান্ত সমাধানের জন্য চেষ্টা করার সুযোগ দেয় । +1
/proc/self/cmdline"বর্ণনামূলক" হিসাবে পরিবর্তিত হয়, pgrep -fa rubyযেমন মেলে না। puma 3.3.0 (tcp://localhost:3000) [MIQ: Web Server Worker]যখন "ডাম্বার" pgrep -a rubyহবে। নিশ্চিত না যে পরবর্তীটি বোকাও হতে পারে কিনা।
pgrepএবং ps।
এই মুহুর্তে, পিগ্রিপ প্রথম 4,096 টি অক্ষরের মধ্যে সীমাবদ্ধ থাকার psচেয়ে আরও সম্পূর্ণ আউটপুট দেবে pgep -f(প্রায়শই জাভা ব্যবহারকারীদের দীর্ঘতর ক্লাসপথ সহ জাভা প্রোগ্রামের প্রবেশের শ্রেণীর সন্ধানে প্রভাবিত হয়)। বাগ ট্র্যাকিং এটি হ'ল: https://gitlab.com/procps-ng/procps/issues/86