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

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

آیا باید تمام فرآیندهای در حال اجرا روی سرور لینوکس خود را مشاهده کنید و کشف کنید که کدام یک از آن ها منابع سیستم شما را بیشتر مصرف می کند؟ دیگر نیازی نیست نگران این موضوع باشید، زیرا در این مقاله آموزش فهرست کردن برنامه ها و فرآیند های در حال اجرا در لینوکس را  با استفاده از چندین دستور رایج لینوکس را توضیح خواهیم داد.

مقدمه ای بر برنامه ها و فرآیند های در حال اجرا در لینوکس

فرآیند ، پردازش یا برنامه و به انگلیسی process  به معنی یک برنامه در حال اجراست. آنها می توانند هنگام باز کردن یک برنامه یا هنگام صدور فرمان از طریق ترمینال خط فرمان راه اندازی شوند. با این حال، یک برنامه کاربردی می تواند چندین فرآیند را برای وظایف مختلف اجرا کند. به عنوان مثال، Google Chrome هر بار که یک برگه جدید را باز می شود، فرآیند متفاوتی را شروع می کند.

یک فرآیند می تواند به عنوان یک فرآیند پیش زمینه یا پس زمینه آغاز شود. به هر فرآیند لینوکس یک PID (شماره شناسایی فرآیند) منحصر به فرد اختصاص داده می شود.

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

چگونه برنامه ها و فرآیند های در حال اجرا در لینوکس را فهرست کنیم؟

برای فهرست کردن فرآیندها در لینوکس، باید از یکی از سه دستور ps، top یا htop استفاده کنید. دستور Ps یک عکس فوری از تمام فرآیندها ارائه می دهد، در حالی که top و htop ، فرآیند ها را بر اساس استفاده از CPU مرتب می کنند.

فهرست کردن برنامه ها یا فرآیند های در حال اجرا در لینوکس با استفاده از دستور “ps”.

دستور ps (وضعیت های فرآیند) یک عکس فوری از تمام فرآیندهای در حال اجرا تولید می کند. بنابراین، برخلاف Task Manager ویندوز، نتایج ثابت هستند.

فهرست کردن برنامه ها یا فرآیند های در حال اجرا در لینوکس با استفاده از دستور "ps".
فهرست کردن برنامه ها یا فرآیند های در حال اجرا در لینوکس با استفاده از دستور “ps”.

هنگامی که این دستور بدون هیچ آرگومان یا گزینه اضافی استفاده می‌شود، فهرستی از فرآیندهای در حال اجرا را به همراه چهار ستون مهم برمی‌گرداند: PID، نام ترمینال (TTY)، زمان اجرا (TIME) و فرآیند (CMD) نام دستوری که دستور را راه‌اندازی می‌کند. شما می توانید از ps aux برای دریافت اطلاعات عمیق تر در مورد فرآیندهای در حال اجرا خود استفاده کنید. در اینجا  لیست آن هابه تفکیک هر استدلال آورده شده است:

گزینه a تمام فرآیندهای در حال اجرا همه کاربران در سیستم را خروجی می دهد.

گزینه u اطلاعات اضافی مانند درصد مصرف حافظه و CPU، کد وضعیت فرآیند و مالک فرآیندها را ارائه می دهد.

گزینه x تمام فرآیندهایی که از ترمینال اجرا نشده اند را فهرست می کند. یک مثال کامل از این دیمون ها هستند، که فرآیندهای مرتبط با سیستم هستند که هنگام بوت شدن سیستم در پس زمینه اجرا می شوند.

اگر می خواهید فرآیندهای لینوکس را در یک نمای سلسله مراتبی لیست کنید، باید از دستور ps -axjf استفاده کنید. در این قالب این دستور، طرح یا نمای کلی، فرآیندهای فرزند را تحت فرآیندهای والد خود قرار می دهد. جدا از این دو گزینه، در اینجا چند نمونه رایج دیگر از دستور ps وجود دارد که فرآیندهای در حال اجرا در لینوکس را فهرست می کند:

ps -u [username] تمام فرآیندهای در حال اجرا یک کاربر خاص را فهرست می کند.

ps -e یا ps -A فرآیندهای فعال لینوکس را در قالب یونیکس عمومی نمایش می دهد.

ps -T فرآیندهای فعالی را که از ترمینال اجرا می شوند نمایش می دهد.

Ps -C process_name لیست را با نام فرآیند را فیلتر می کند. علاوه بر این، این دستور همچنین تمام پردازش های فرزند فرآیند مشخص شده را نشان می دهد.

فهرست کردن برنامه ها یا فرآیند های در حال اجرا در لینوکس با استفاده از دستور ” top”

دستور top برای کشف فرآیندهای تشنه منابع استفاده می شود. این دستور لینوکس لیست را بر اساس استفاده از CPU مرتب می کند، بنابراین فرآیندی که بیشترین مصرف را دارد در بالای صفحه قرار می گیرد. همچنین بررسی اینکه آیا یک فرآیند خاص در حال اجرا است یا خیر ممکن است خیلی مفید باشد.

فهرست کردن برنامه ها یا فرآیند های در حال اجرا در لینوکس با استفاده از دستور " top"
فهرست کردن برنامه ها یا فرآیند های در حال اجرا در لینوکس با استفاده از دستور ” top”

برخلاف دستور ps، خروجی فرمان top به صورت دوره ای به روز می شود. این بدان معناست که به‌روزرسانی‌های بی‌درنگ برای استفاده از CPU و زمان اجرا را مشاهده خواهید کرد. هنگامی که قالب لیست را برگرداند، می توانید کلیدهای زیر را برای تعامل با آن فشار دهید:

کلیدها کارکرد
k یک فرآیند را می کشد یا خاموش می کند
M لیست را بر اساس میزان مصرف حافظه مرتب می کند.
N لیست را بر اساس PID مرتب می کند.
r اولویت یک فرآیند را تغییر می دهد.
h پنجره راهنما را نمایش می دهد.
z فرآیندهای در حال اجرا را با رنگ ها نمایش می دهد.
d فاصله زمانی تازه سازی را تغییر می دهد.
c مسیر مطلق یک فرآیند را نمایش می دهد.
CTRL+C;or;q دستور بالا را متوقف می کند.

به خاطر داشته باشید که کلیدهای بالا به حروف بزرگ و کوچک حساس هستند، بنابراین مطمئن شوید که Caps lock را فعال نکنید.

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

هر دو دستور htop و top اطلاعات یکسانی را هنگام فهرست کردن فرآیندهای لینوکس شما نشان می‌دهند، اما اولی ویژگی‌های کاربرپسندی را ارائه می‌دهد که برای مدیریت فرآیندهای روزمره عالی هستند.

اول از همه، دستور htop به شما اجازه می دهد تا به صورت عمودی و افقی فرآیند ها را مشاهده کنید. به این ترتیب، می توانید لیست کامل فرآیندهای لینوکس خود را به همراه خطوط فرمان کامل آنها ببینید.

علاوه بر این، این دستور به شما این امکان را می دهد از ماوس برای انتخاب موارد، کشتن یا حذف فرآیندها بدون درج PID آنها، تغییر اولویت چندین فرآیند به راحتی و غیره استفاده کنید.

متأسفانه، اکثر توزیع‌های لینوکس این دستور را مستقیماً ندارند، بنابراین باید آن را به صورت دستی نصب کنید.

اگر از اوبونتو استفاده می کنید، می توانید htop را با اجرای دستور زیر نصب کنید:

sudo apt-get install htop

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

پس از نصب، دستور htop را تایپ کنید و لیستی از تمام فرآیندهای لینوکس خود را دریافت خواهید کرد. درست مانند دستور قبلی، htop چندین میانبر صفحه کلید نیز دارد:

کلید ها عملیات  
F9 برای کشتن یا حذف یک فرآیند
F8 اولویت یک فرآیند را افزایش دهید.
F7 کاهش اولویت یک فرآیند
F6 مرتب سازی فرآیندها بر اساس هر ستون.
F5 نمایش فرآیندها در نمای درختی
F4 فرآیندها را با نام فیلتر کنید.
F3 یک فرآیند را جستجو کنید.
F2 htop setup را باز کنید.
F1 منوی راهنما را نمایش دهید.

فهرست کردن برنامه ها یا فرآیند های در حال اجرا در لینوکس با استفاده از دستور “atop”

دستور atop ابزاری برای نظارت بر منابع سیستم در لینوکس است. این یک ابزار عملکرد تمام صفحه ASCII است که فعالیت تمام فرآیندهای سرور را ثبت و گزارش می کند.

هنگامی که راه اندازی شود، atop میزان استفاده از منابع برای CPU، حافظه، تعویض، دیسک و شبکه را در فواصل 10 ثانیه نشان می دهد. atop برای تجزیه و تحلیل طولانی مدت سرور (تا 28 روز به طور پیش فرض) در پس زمینه فعال می ماند.

برخی از مزایا عبارتند از:

  • استفاده از منابع را برای همه فرآیندها و کاربرانی با نام یکسان جمع می کند.
  • منابع مهم را در رنگ ها (قرمز) برجسته می کند.
  • استفاده از منابع همه فرآیندها، از جمله آنهایی که تکمیل یا بسته شده اند را نشان می دهد.
  • موضوعات درون فرآیندها (به جز موارد استفاده نشده) را رصد می کند.
  • از موبایل هسته netatop برای نظارت بر TCP، UDP و پهنای باند شبکه استفاده می کند.

با اجرای یکی از دستورات زیر می توانید دستور atop را نصب کنید:

Ubuntu/Debian

sudo apt install atop

CentOS/RHEL/Fedora

sudo dnf install atop

پس از نصب، دستور atop را اجرا کنید تا تمام استفاده در سطح فرآیند از منابع سیستم نمایش داده شود.

فهرست کردن برنامه ها یا فرآیند های در حال اجرا در لینوکس با استفاده از دستور "atop"
فهرست کردن برنامه ها یا فرآیند های در حال اجرا در لینوکس با استفاده از دستور “atop”

در اینجا لیستی از آرگومان های موجود و توضیحات آنها آمده است:

دستورات توضیحات
man atop صفحه راهنمای فرمان atop را نمایش می دهد.
atop -l مقادیر کل میانگین در هر ثانیه را نمایش می دهد.
atop -a فرآیندهای فعال را در آخرین بازه های زمانی نمایش می دهد.
atop -c خط فرمان را در هر فرآیند نمایش می دهد.
atop -m اطلاعات مربوط به حافظه را نمایش می دهد.
atop -d اطلاعات مربوط به دیسک را نمایش می دهد.
atop -n اطلاعات شبکه را نمایش می دهد.
atop -s جزئیات زمان بندی را نمایش می دهد.
atop -v اطلاعات مختلف (به عنوان مثال PPID، کاربر یا زمان) را نمایش می دهد.
atop -y رشته های جداگانه را نمایش می دهد.

پس از اجرای atop، کلیدهای میانبر فهرست شده در زیر را فشار دهید تا فرآیندها مرتب شوند:

کلیدها عملیات
a به ترتیب فعال ترین منابع مرتب می شود.
c به مرتب سازی بر اساس مصرف CPU (پیش فرض) برمی گردد.
d به ترتیب فعالیت دیسک را مرتب می کند.
m به ترتیب استفاده از حافظه مرتب می کند.
n به ترتیب فعالیت شبکه مرتب می کند.

نتیجه گیری

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

کدام یک از این سه دستور را ترجیح می دهید؟ نظرات خود را در بخش نظرات زیر به اشتراک بگذارید!

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

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