آشنایی با کامند ps در لینوکس


آشنایی با کامند ps در لینوکس


ps اطلاعاتی در مورد پروسه‌های در حال اجرا در لینوکس در اختیار ما قرار می‌دهد که بر اساس PID سورت شده‌اند اما اگر نیاز داشته باشید تا به صورت Real-time (در لحظه) این لیست از پروسه‌ها آپدیت شود، می‌توانید از کامند از پیش تعریف شده‌ای در لینوکس تحت عنوان top و یا ابزارهای کمی پیشرفته‌تری همچون htop یا atop استفاده کنید.

ps دارای آپشن‌های بسیاری است که این امکان را به کاربر می‌دهند تا مشخص کند چه تسکی را بررسی کند، چه اطلاعاتی را نمایش دهد و حتی نحوهٔ نمایش خروجی داده‌ها نیز به چه شکل باشد اما این در حالی است که اگر از هیچ آپشنی برای این کامند استفاده نکنیم، ps تمامی پروسه‌هایی که در شِل مد نظر اجرا شده‌اند را نمایش خواهد داد:

همان‌طور که می‌بینیم، کلیهٔ پروسه‌های در حال اجرا در شِل فعلی نمایش داده شده‌اند. به عبارت دیگر، در ترمینالی که ما این دستور را وارد کردیم صرفاً ۲ پروسهٔ در حال اجرا بیشتر نداریم: یکی کامند ps و دیگری بَش مرتبط با این ترمینال. با این حال، با استفاده از آپشن u- می‌توان پروسه‌های مختص به یک کاربر خاص را نمایش داد؛ به طور مثال داریم:

در خروجی فوق می‌بینیم که تمامی پروسه‌های کاربری تحت عنوان behzadmoradi نمایش داده شده‌اند. آپشن ef- کلیهٔ پروسه‌های سیستم را با جزئیات کامل در معرض دیدمان قرار خواهد داد و آپشن eLF- هم یک گام فراتر رفته و برای هر Thread به صورت مجزا اطلاعاتی تکمیلی را نمایش می‌دهد.

استفاده از کامند ps به سبک BSD
دستور ps را به شکل دیگری نیز می‌توان مورد استفاده قرار داد که به نوعی مرتبط با BSD UNIX است به طوری که آپشن‌های آن بدون استفاده از دَش (-) نوشته می‌شوند.

نکته
Berkeley Software Distribution یا به اختصار BSD (توزیع نرم‌افزاری برکلی) یکی از مشتقات سیستم‌عامل UNIX بود که در دانشگاه برکلی منتشر می‌شد اما امروزه اصطلاح BSD یا BSD UNIX برای اشاره به خانواده‌ای از سیستم‌عامل‌های شبه‌یونیکس استفاده می‌شود.

برای مثال، کامند ps aux برای نمایش دادن کلیهٔ پروسه‌های تمامی کاربران استفاده می‌شود:

و کامند ps axo هم این امکان را به کاربر می‌دهد تا اَتریبوت‌ یا ویژگی‌های مد نظرش را به عنوان پارامترهای اضافی مشخص سازد: 

آشنایی با مفهوم Process Tree (درخت پروسه)
ابزاری تحت عنوان pstree در لینوکس نظر گرفته شده است که کلیهٔ پروسه‌هایی که در حال اجرا هستند را در قالب یک نمودار درختی در معرض دید کاربر قرار می‌دهد و این در حالی است که ارتباط مابین یک پروسه و پروسه‌ٔ والدش (Parent) و پروسه‌های فرزندش (Child) هم نمایش داده می‌شوند (لازم به ذکر است که تِرِدها داخل { } نمایش داده می‌شوند):

نموداری که در بالا مشاهده می‌شود، یک نمونهٔ کامل از نمودار درختی پروسه‌ها است. 

سؤالی که معمولاً برای تازه‌کارهای لینوکس پیش می‌آید این است که اگر به قول معروف سیستم در حین اجرای یکی از اپلیکیشن‌های در حال اجرا هنگ کند، چه کار باید کرد؟ که این مسئله را در آموزش بعدی بررسی خواهیم کرد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *