উত্তর:
ps aux
সম্পূর্ণ কমান্ড লাইন (পথ এবং পরামিতি) অন্তর্ভুক্ত করে, যখন pgrep কেবল এক্সিকিউটেবলের নামের প্রথম 15 টি অক্ষর দেখায়ps aux
প্রতিটি প্রক্রিয়াটির সম্পূর্ণ কমান্ড লাইন প্রদান করে, pgrep
কেবলমাত্র এক্সিকিউটেবলের নাম দেখায়।
এর অর্থ হ'ল গ্রেপিং ps aux
আউটপুট কোনও প্রক্রিয়াটির বাইনারি: যেমন `এর প্যারামিটারে ঘটে যাওয়া কোনও কিছুতেই মেলে`
ps aux | grep php5
মিলবে /usr/share/php5/i-am-a-perl-script.pl
pgrep 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