چگونه میتوان به تعداد فرآیندهای در حال اجرا در محیط لینوکس دست یافت؟ چگونه میتوان به شمارش تمام فرآیندهای در حال اجرا در محیط لینوکس پرداخت؟ برای یافتن پاسخ این پرسشها با ما همراه باشید.
فرآیندهای در حال اجرا در محیط لینوکس همان برنامهها یا دستوراتی هستند که در لینوکس اجرا میشوند. در ادامه فرمانهای مختلفی که برای شمارش تعداد فرآیندهای در حال اجرا در محیط لینوکس مورد استفاده قرار میگیرند، بررسی خواهیم کرد.
مشاهده فرآیندهای در حال اجرا در محیط لینوکس
فرمان 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 مراجعه کنید.