چگونه می‌توان به تعداد فرآیندهای در حال اجرا در محیط لینوکس دست یافت؟ چگونه می‌توان به شمارش تمام فرآیندهای در حال اجرا در محیط لینوکس پرداخت؟ برای یافتن پاسخ این پرسش‌ها با ما همراه باشید.

فرآیندهای در حال اجرا در محیط لینوکس همان برنامه‌ها یا دستوراتی هستند که در لینوکس اجرا می‌شوند. در ادامه فرمان‌های مختلفی که برای شمارش تعداد فرآیندهای در حال اجرا در محیط لینوکس مورد استفاده قرار می‌گیرند، بررسی خواهیم کرد.

مشاهده فرآیندهای در حال اجرا در محیط لینوکس

فرمان ps برای فهرست‌کردن فرآیندهای کنونی که در سیستم‌عامل در حال اجرا هستند، و همین‌طور PID های آنها در لینوکس و سیستم‌های مشابه یونیکس مورد استفاده قرار می‌گیرد. حداقل تعداد فرآیندهای در حال اجرا در محیط لینوکس ۲ عدد است که در صفحه نمایش داده می‌شود. به عنوان مثال، فرمان‌های bash و ps به صورت پیش‌فرض در لینوکس در حال اجرا هستند که با تایپ فرمان ps فهرست می‌شوند.


ps

نمونه خروجی:

 


PID TTY          TIME CMD

31043 pts/3    00:00:00 bash

32324 pts/3    00:00:00 ps

شمارش برای هر فایل در محیط لینوکس

wc مخففی برای تعداد کلمات است. فرمان wc به صورت پیش‌فرض، تعداد خطوط، کلمات و کاراکترها در متن شمارش می‌کند. به عنوان مثال، با کد زیر تعداد خطوط جدید را می‌توانید نمایش دهید:


echo "line 1" | wc –l

برای چاپ تعداد بایت‌ها:

 


echo "Hello" | wc -c

امکان چاپ تعداد کلمات نیز به صورت زیر وجود خواهد داشت:


echo "Hello world" | wc –w

نحوه پیدا کردن تعداد فرآیندهای در حال اجرا در محیط لینوکس

این امکان وجود دارد که با استفاده از فرمان ps همراه با فرمان wc به تعداد فرآیندهای در حال اجرا در محیط لینوکس بر روی سیستم‌تان دست پیدا کنید. امّا این کاری است که میتواند توسط هر کاربری صورت گیرد. شما به عنوان کاربر root که از فرمان sudo استفاده می‌کند، بهتر است فرمان‌های زیر را به کار ببرید.

دستورهای مورد استفاده برای شمارش تعداد فرآیندهای در حال اجرا در محیط لینوکس

فرمت فرمان لینوکس به صورت زیر است:


# ps -e | wc -l

برای مشاهده و شمارش هر کدام از فرآیندها در سیستم با استفاده از فرمت BSD


# ps axu | wc –l

اگر می‌خواهید تعداد هر کدام از فرآیندها را به صورت شناسه vivek به فرمت کاربر مشاهده کنید، فرمان زیر را اجرا نمایید:


$ ps -U vivek -u vivek u | wc -l

یک نمونه دیگر برای کاربر www-data


$ ps -U www-data -u www-data u | wc –l

به شکل خلاصه و برای شمارش تعداد فرآیندهای در حال اجرا در محیط لینوکس از طرف یک کاربر root می‌توانید از فرمان زیر استفاده کنید:


sudo ps -U root | wc -l

sudo ps -U root -u root u | wc –l

سپس به شمارش تعداد شناسه‌های فرآیندهای nginx با فرمت زیر می‌پردازیم:


ps -C nginx | wc -l

ps -C nginx -o pid= | wc –l

از گزینه –no-headers یا –no-heading نیز می‌توانید استفاده کنید. این کار باعث میشود که بدون چاپ سربرگ، تعداد فرآیندهای در حال اجرا به‌درستی برای شما نمایش داده شود.


# ps -e --no-headers | wc -l

52

# ps -e | wc -l

53

در هنگام شمارش تعداد واقعی nginx بهتر است که با استفاده از فرمان ps، فرمان grep را از حالت اجرا خارج کنیم:


ps -e --no-headers | grep [n]ginx

ps -e --no-headers | grep [n]ginx | wc –l

گزینه‌های مختلف فرمان wc

 

-c            چاپ تعداد بایت‌ها

-m          چاپ تعداد کاراکترها

-l             چاپ تعداد خطوط جدید

-w           چاپ تعداد کلمات

–help    نمایش راهنمای فرمان و خروج

گزینه‌های مختلف فرمان ps

 

-e            انتخاب تمام فرآیندها (قالب گنو / لینوکس)

aux         انتخاب تمام فرآیندها (قالب بی‌اس‌دی)

-U user                 انتخاب شناسه کاربر یا نام کاربری

-u user انتخاب شناسه مؤثر کاربر یا نام کاربری

-C cmdlist            انتخاب بر اساس نام فرمان. این گزینه فرآیندهایی را انتخاب می‌کند که نام اجرایی آنها در لیست سی‌ام‌دی وجود داشته باشد.

–no-headers     عدم چاپ سربرگ

 

جمع‌بندی

در این مطلب، نحوه فهرست‌کردن تعداد فرآیندهای در حال اجرا در محیط لینوکس یا سیستم‌های شبیه به یونیکس را با استفاده از گزینه‌های مختلف خط فرمان بررسی کردیم. برای کسب دانش بیشتر در این زمینه می‌توانید به راهنمای فرمان ps مراجعه کنید.