آشنایی با دستور ps در لینوکس به همراه 8 پارامتر کاربردی

محتوای مطلب

مدیریت پردازش ها در لینوکس یا process management مبحثی بسیار مهم و برای ادمین های سیستم میباشد که باید همگی نسبت به آن اطلاع داشته باشند. دستور ps یکی از دستورهای مهم جهت پایش پردازش های سیستم میباشد که دارای پارامترهای فراوانی است و ما در این مقاله سعی خواهیم کرد که 30 پارامتر کاربردی دستور ps در لینوکس به شما آموزش دهیم.این دستور یکی از دستوراتی است که برای مدیریت منابع در لینوکس استفاده میشود و جهت پایش منابع سیستم باید شما دستورات دیگری مانند دستور top یا دستور iotop یا سایر دستورات دیگر را بلد باشید.

دستور ps یا process status وظیفه نمایش لیست پردازش های موجود در سیستم را بر عهده دارد جز دستورات قدیمی سیستم عامل لینوکس است و به همین خاطر بعد از گذشت سال ها و تغییرات فراوانی که روی آن صورت گرفته به روش های مختلف شما میتوانید پارامترهای آن را اعمال نمایید. ممکن است یک عمکرد خاص این دستور با چندین پارامتر مختلف قابل انجام باشد که با یادگیری یکی از آنها نیاز به یادگیری مابقی نیست.

دستور ps در لینوکس

دستور ps را اگر بدون هیچ پارامتری در خط فرمان وارد نمایید پردازش های فعال در آن session را به ما نمایش میدهد. همانطور که در تصویر زیر مشاهده میکنید با زدن دستور ps بدون پارامتر اطلاعاتی شامل کد پردازش، نام برنامه و شماره tty را به شما نمایش میدهد.

ps command

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

با استفاده از پارامتر e- یا A- شما میتوانید تمامی پردازش های فعال سیستم عامل لینوکس را با فرمت generic لینوکس مشاهده کنید همانند تصویر زیر:

با استفاده از پارامتر های مختلف این دستور خروجی های متفاوتی میتوانید مشاهده کنید اگر بخواهیم با فرمت BSD تمام پردازش ها را مشاهده کنیم میتوانیم از پارامتر au- یا aux- استفاده کنیم همانند تصویر زیر:

ps -aux command

همچنین در صورتیکه بخواهید اطلاعات بیشتری به شما نمایش دهد و با فرمت کامل اطلاعات خروجی مربوط به دستور ps در لینوکس را مشاهده کنید از پارامتر f- یا F- میتوانید استفاده کنید و این پارامتر را به همراه سایر پارامترها همانند توصیر زیر وارد نمایید:

ps -ef command

مشاهده تمام پردازش های مربوط به یک کاربر در لینوکس با دستور ps

شما میتوانید تمامی پردازش های مربوط به کاربری که با آن وارد شده اید را بوسیله پارامتر x- در دستور ps مشاهده نمایید همانند تصویر زیر:

ps -x command

اگر بخواهید که نام کاربری را وارد نمایید و پردازش های یک کاربر دیگر به غیر از کاربری که با آن وارد شده اید را مشاهده کنید باید از پارامتر u- و U- به همراه نام کاربری همانند دستور زیر استفاده کنید:

ps -u moein -U moein

ps -u command

لیست پردازش های مربوط به یک گروه با دستور ps

شما میتوانید لیست تمامی پردازش های مربوط به یک گروه خاص را با استفاده از دستور ps در لینوکس و پارامتر G- و g- همانند تصویر زیر مشاهده نمایید.

ps -g command in linux

نکته: همانطور که در دو پارامتر قبل مشاهده کردید برای مشاهده پردازش های مربوط به کاربر و گروه دو پارامتر معرفی شده است.تفاوت این دو پارامتر در این است که یکی از پارامتر ها در هر دسته مربوط به Efective user id یا group id است و دیگری مربوط به Real user id یا group id است.در مقاله ای جداگانه این موضوع کامل توضیح داده شده است.

مشاهده مشخصات پردازش بر اساس pid و ppid

همانطور که ذکر شد هر پردازش دارای یک کد منحصر به فرد است بنام PID(Process ID) و ممکن است یک فرآیند دارای چندین زیر فرآیند باشد که در این صورت به فرآیند اصلی یک PPID(Parent PID) تخصص میابد. شما میتوانید با استفاده از پارامتر fp- به همراه کد مربوط به آن پردازش همانند زیر اطلاعات کامل مربوط به پردازش را مشاهده کنید.

سیستم عامل لینوکس با استفاده از دستور ps این امکان را به شما میدهد که بتوانید چندین PID را بصورت همزمان پایش کنید همانند تصویر زیر:

ps -p

همچنین برای اینکه مشخصات پردازش والد را بتوانید مشاهده کنید باید از پارامتر ppid– به همراه شماره مربوطه در خط فرمان وارد نمایید تا همانند زیر به شما نمایش بدهد.

ps -ppid

نمایش درختی پردازش ها

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

ps -e --forest

اگر هم بخواهید با استفاده از دستور ps در لینوکس فقط درخت پردازش مربوط به یک برنامه خاص را مشاهده کنید میتوانید از دستور زیر استفاده کنید. برای مثال این دستور درخت پردازش مربوط به برنامه ssh را نمایش میدهد.

ps -f --forest -C sshd

 

ps -e --forest -C sshd

نمایش Thread های یک پردازش در لینوکس

سیستم عامل لینوکس بصورت Multi thread طراحی شده است بدین صورت که یک پردازش ممکن است نخ یا Thread های مختلف ایجاد نماید تا بصورت همروند از کل قدرت پردازشی سیستم استفاده کند. شما با استفاده از دستور ps در لینوکس میتوانید تمامی Thread های مربوط به یک پردازش را مشاهده نمایید. برای این کار باید از پارامتر L- استفاده کنید همانند تصویر زیر:

ps -L command in linux

تغییر فرمت نمایش اطلاعات دستور ps در لینوکس

دستور ps بصورت پیش فرض یک سری از اطلاعات را به شما نمایش میدهد اما این تمامی اطلاعاتی نیست که امکان جمع آوری آن وجود دارد و میتوانید با استفاده از پارامتر L (بدون خط تیره) لیست کل سر ستون هایی که امکان مشاهده آن وجود دارد را ببینید. سپس با استفاده از پارامتر o- یا format-  میتوانید ستون های اطلاعات مد نظرتان را مشاهده نمایید. برای مثال در تصویر خروجی دستور ps با سر ستون های ppid,pid,cmd,user را مشاهده میکنید.

ps -o command in linux

مشاهده پردازش والد و پردازش های فرزند با دستور ps

ممکن است بخواهید تمامی پردازش های مربوط به یک برنامه را مشاهده کنید برای این مهم میتوانید از پارامتر C- استفاده کنید همانند تصویر زیر:

ps -C command in linux

 

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

16 + چهارده =