منبع اصلی نوشتار زیر در این لینک قرار دارد

دستور pgrep برای پیداکردن شناسه فرایند ها

دستور pgrep برای پیدا کردن اطلاعات یک فرایند مانند شناسه یا مالک آن توسط نام فرایند مورد استفاده قرار می گیرد. اغین دستور  بر اساس نام یا الگویی که به آن داده شده، در میان فرایند های فعال و در حال اجرا جستجو می کند و خروجی را نشان می دهد. بطور مثال می خواهیم بررسی کنیم که آیا فرایند مربوط به سرویس sshd در سیستم وجود دارد یا خیر؟ تنها کافیست دستور زیر را اجرا کنیم، اگر سرویس فعال باشد، شناسه فرایند مربوط به آن نشان داده می شود.

pgrep sshd

1702

از سوئیچ l- برای نمایش نام سرویس در خروجی به همراه شناسه فرایند، استفاده می شود. این سوئیج بطور مثال زمانی که از یک الگو برای جستجو در میان فرایند های فعال استفاده می کنید، مفید خواهد بود.

pgrep sshd -l

OR

pgrep -l sshd

بطور پیش فرض هر فرایند به همراه شناسه اش در یک خط چاپ می شوند، می توانید با استفاده از سوئیچ d- که مخفف delimiter است یک جدا کننده را تعیین کنید.

pgrep -d “|” -l ssh

با استفاده از سوئیچ u- می توانید تمامی فرایند متعلق به یک کاربر را پیدا کنید. بطور مثال در دو دستور زیر، نخستین دستور فرایند های متعلق به کاربر root، دومین دستور تعداد فرایند های متعلق به کاربر amirnami و سومین دستور اطلاعات فرایند های متعلق به سرویس ssh و متعلق به کاربر root را نشان می دهد.

pgrep -lu root

pgrep -lu amirnami | wc -l

pgrep -lu root ssh

با استفاده از سوئیچ g- تمامی فرایند هایی که متعلق به گروه لیست شده در جلوی سوئیچ g- هستند را نشان می دهد. اگر در فهرست جلوی سویچ g- عدد 0 باشد، بعنوان session ID فرایند pgrep در نظر گرفته می شود.

pgrep -l -g GROUP_ID

با استفاده از سوئیچ P- (توجه کنید که P بزرگ)، تمامی فرایند هایی که فرایند والد آنها، جلوی سوئیچ P- آمده است را می توان فهرست کرد. بطور مثال در دوستور زیر، دستور نخست تمامی فرایند هایی که والد آنها 1 است را لیست می کند، دومین دستور تمامی فرایند های متعلق به کاربر root که والد آنها 1 (یعنی فرایند init) است را فهرست می کند.

pgrep -lp 1 OR pgrep -l -p 1

pgrep -lp 1 -u root OR pgrep -l -p 1 -u root

شکل زیر مربوط به اجرای دستور در سیستم عامل سولاریس است

با استفاده از سوئیچ t- می توانید فرایند های متعلق به یک ترمینال خاص را پیدا کنید. با استفاده از دستور tty می توانید نام ترمینالی که در حال استفاده و اجرای دستور ها از درون آن هستید را پیدا کنید. بطور مثال در دستور های زیر، نخستین دستور تمامی فرایند های متعلق به ترمینال tty2، دومین دستور تمامی فرایند های متعلق به ترمینال pts/0 و سومین دستور تمامی فرایند های متعلق به کاربر root که در ترمینال pts/0 در حال اجرا شدن هستند را نشان می دهد.

pgrep -l -t tty2

pgrep -l -t pts/0

pgrep -lu root -t pts/0

pgrep -lu root -P 1 -t pts/0

با استفاده از سوئیچ x-، تنها آن فرایندی که بعنوان آرگومان ورودی سوئیچ (یا همان الگو)، تعیین شده است را نشان می دهد. بطور مثال برای اینکه بررسی کنید آیا فرایندی به نام sshd و دقیقا همین نام وجود دارد یا نه، از دستور های زیر استفاده کنید. نخستین دستور زیر بررسی می کند که ایا فرایندی به نام sshd وجود دارد یا نه و دومین دستور بررسی می کند که آیا فرایندی به نام sshd و متعلق به کاربر root وجود دارد یا نه.

pgrep -l -x sshd

pgrep -lu root -x sshd

دیگر مثال ها

  • دستور زیر ابتدا شناسه متعلق به فرایند gvfsd را پیدا می کند و سپس توسط دستور renice، اولویت آنرا تغییر می دهد.

` renice +4 `pgrep gvfsd

  • دستور زیر شناسه فرایند متعلق به سرویس named (سرویس DNS) که متعلق به کاربر root است را پیدا می کند.

pgrep -u root named



برچسب ها : , , , , , , , , ,

به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد