اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

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

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

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

    دستور ps (مخفف processes status) یک ابزار لینوکسی برای مشاهده اطلاعات مربوط به یک Process یا پروسس های در حال اجرای سیستم میباشد. این دستور اطلاعات را از فایل های مجازی در فایل سیستم proc میخواند. این یکی از ابزار مهم برای مدیریت سیستم، خصوصا مانیتورینگ سیستم میباشد، که به شما کمک میکند تا متوجه شوید چه اتفاقی در سیستم لینوکس میافتد.

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


    همچنین توصیه میشود مطالعه کنید :

    آنچه که شما باید در باره پروسس ها درLinux بدانید


    در این مقاله، ما میخواهیم 30 مثال از دستورات ps برای مانیتور کردن پراسس های در حال اجرا در یک سیستم لینوکسی را مشاهده کنیم.

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



    لیست تمام Process های در Shell جاری

    1 - اگر شما دستور ps را بدون هیچ آپشنی اجرا کنید، به شما فقط پروسس های shell فعلی را نمایش میدهد.
    کد PHP:
    ps 
    دستور ps در لینوکس








    نمایش تمام Process ها با فرمتی متفاوت

    2 - نمایش پروسس های فعال در سیستم لینوکس به فرمت کلی (Unix/Linux)
    کد PHP:
    ps -A
    OR
    ps -
    ps command in linux








    3 - نمایش تمام Process ها به فرمت BSD (مخفف Berkeley Software Distribution)
    کد PHP:
    ps au
    OR
    ps axu 
    نحوه نمایش تمام پروسس ها در لینوکس








    4 - برای لیست کردن به فرمت کامل، از آپشن -f یا -F استفاده کنید.
    کد PHP:
    ps -ef
    OR
    ps -eF 
    نحوه لیست کردن process ها در لینوکس








    نمایش Process های در حال اجرای کاربر

    5 - شما میتوانید تمام پروسس هایی که برای user شما هست را به صورت زیر انتخاب کنید. (در این سناریو دستور ps با root اجرا شده است)
    کد PHP:
    ps -

    6 - برای نمایش پروسس های یک کاربر با ID واقعی یا نام آن (RUID)، از آپشن -U استفاده کنید.
    کد PHP:
    ps -fU tecmint
    OR
    ps -fu 1000 
    نمایش پروسس های یک کاربر








    7 - برای انتخاب پروسس های یک کاربر با ID یا نام کاربر (EUID) از آپشن -u استفاده کنید.
    کد PHP:
    ps -fu tecmint
    OR
    ps -fu 1000 



    نمانیش تمام Process های در حال اجرای یوزر Root (توسط ID)

    8 - دستور زیر هر Process ی که توسط یوزر root اجرا شده باشد را به فرمت یوزر برای شما نمایش خواهد داد.
    کد PHP:
    ps -U root -u root 
    نمایش تمام پراسس های یوزر root








    نمایش Process های متعلق به یک گروه

    9 - اگر شما بخواهید تمام پروسس هایی که به گروه خاصی متعلق هستند (ID واقعی گروه (RGID) یا نام گروه) را لیست کنید از دستور زیر استفاده نمایید.
    کد PHP:
    ps -fG apache
    OR
    ps -fG 48 
    نمایش تمام پروسس های یک گروه کاربری خاص








    10 - برای لیست کردن تمام پروسس ها براساس نام گروهی که پروسس به آن تعلق دارد (یا session) از دستور زیر استفاده میکنیم.
    کد PHP:
    ps -fg apache 

    نمایش Process ها از طریق PID و PPID

    11 - شما میتوانید پروسس ها را با استفاده از PID شبیه به زیر لیست کنید.
    کد PHP:
    ps -fp 1178 
    نمایش process از طریق pid








    12 - برای انتخاب کردن پروسس با استفاده از PPID دستور زیر را تایپ کنید.
    کد PHP:
    ps ---ppid 1154 
    دستور ps








    13 - با استفاده از دستور زیر و با استفاده از لیست PID پروسس را نمایش دهید.
    کد PHP:
    ps -fp 2226,1154,1146 
    پیدا کردن pid یک process در لینوکس








    نمایش Process ها با استفاده از TTY

    14 - برای انتخاب پروسس ها با استفاده از tty از آپشن -t همانند زیر استفاده کنید.
    کد PHP:
    ps -t pst/0
    ps -t pst/1
    ps -ft tty1 
    نحوه نمایش process ها در linux








    نمایش درختی پروسس ها (Process Tree)

    15 - یک درخت پروسس نمایش میدهد که چگونه پروسس های روی سیستم به یکدیگر لینک شده اند، همچنین پروسس هایی که parent آنها kill شده اند توسط init (یا systemd) سرپرستی میشوند.
    کد PHP:
    ps ---forest 
    نحوه نمایش درختی پروسس ها در لینوکس








    16 - شما همچنین میتوانید یک درخت پروسس (Process Tree) را تنها برای یک پروسس مشخص نمایش دهید.
    کد PHP:
    ps ---forest -C sshd
    OR
    ps -ef --forest grep -v grep grep sshd 
    نمایش درختی process ها در linux








    نمایش Process Thread ها

    17 - برای نمایش تمام thread های یک پروسس از آپشن -H استفاده میکنیم، این آپشن ستون LWP (مخفف Light Weight Process یا پروسس های سبک) و NLWP (مخفف Number of Light Weight Process - تعداد پروسس های سبک) را نمایش خواهد داد.
    کد PHP:
    ps -fL -C httpd 
    دستور ps برای نمایش process ها








    مشخص کردن فرمت خروجی دلخواه

    با استفاده از -o یا -format دستور ps به شما این امکان را میدهد که فرمت خروجی تعریف شده توسط کاربر خود را همانند تصویر زیر داشته باشید.

    18 - برای لیست کردن همه موارد مشخص کننده فرمت از آپشن L استفاده میکنیم.
    کد PHP:
    ps L 

    19 - دستور زیر به شما امکان نمایش PID, PPID، نام کاربر و دستور مربوط به یک پروسس را میدهد.
    کد PHP:
    ps -eo pid,ppid,user,cmd 
    پیدا کردن pid یک پروسس در لینوکس








    20 - دستور زیر مثال دیگری از فرمت خروجی دلخواه میباشد که گروه فایل سیستم، مقدار Nice، زمان شروع و زمان سپری شده از یک پروسس را نمایش میدهد.
    کد PHP:
    ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime 
    دستور ps در linux








    21 - برای پیدا کردن نام یک پروسس با استفاده از PID آن از دستور زیر استفاده کنید.
    کد PHP:
    ps -p 1154 -o comm
    دستور ps در لینوکس








    نمایش پروسس های Parent و Child

    22 - برای انتخاب یک پروسس مشخص با استفاده از نام آن از آپشن -C استفاده میشود که این آپشن همچنین تمام پروسس های child پروسس اصلی را نیز نمایش خواهد داد.
    کد PHP:
    ps -C sshd 
    نمایش پراسس ها در لینوکس








    23 - پیدا کردن تمام PID های همه نمونه های یک پروسس به هنگام نوشتن اسکریپت هایی که نیاز به خواندن PID ها از یک خروجی استاندارد یا یک فایل دارند امری بسیار مفید است که با استفاده از دستور زیر میتوانیم به این هدف دست پیدا کنیم.
    کد PHP:
    ps -C httpd -o pid
    نحوه نمایش پروسس ها در linux








    24 - برای بررسی کردن execution time (مدت زمان اجرا) مربوط به یک پروسس از دستور زیر استفاده میکنیم.
    کد PHP:
    ps -eo comm,etime,user grep httpd 
    خروجی زیر نمایش میدهد که سرویس HTTPD به مدت 1 ساعت و 48 دقیقه و 17 ثانیه میباشد که در حال اجراست.
    نحوه نمایش یک پروسس خاص در لینوکس








    Troubleshoot کردن کارایی سیستم لینوکس

    اگر سیستم شما آنطور که باید کار نمیکند برای مثال اگر به صورت غیر طبیعی کند است شما میتوانید یک سری ترابل شوت ها روی سیستم همانند زیر انجام دهید.

    26 - پیدا کردن پروسس های در حال اجرا بر اساس مصرف بالای CPU و Memory در لینوکس از دستور زیر استفاده میکنیم.
    کد PHP:
    ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem head
    OR
    ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu head 
    دستور ps برای نمایش process ها








    27 - برای kill کردن یک پروسس لینوکسی یا اپلیکیشن های بی مسئولیت (Unresponsive) و یا هر پروسسی که در حال مصرف بالایی از CPU است، ابتدا باید PID پروسس یا اپلیکیشن را با استفاده از دستور زیر پیدا کنید،
    کد PHP:
    ps -grep -i stress 
    سپس از دستور kill برای خاتمه دادن سریع به آن استفاده میکنیم.
    کد PHP:
    kill -9 2583 2584 
    نحوه نمایش process id یک سرویس در لینوکس








    نمایش اطلاعات امنیتی

    28 - برای نمایش بخش امنیتی (خصوصا برای SELinux) شبیه به زیر عمل میکنیم.
    کد PHP:
    ps -eM
    OR
    ps ---context 
    جستجوی یک process در لینوکس








    29 - شما همچنین میتوانید اطلاعات امنیتی را به فرمت مورد نظر کاربر با استفاده از دستور زیر نمایش دهید.
    کد PHP:
    ps -eo  euser,ruser,suser,fuser,f,comm,label 
    جستجوی یک پروسس در linux








    مانیتورینگ realtime (لحظه ای) پروسس ها با استفاده از ابزار watch

    30 - نهایتا از آنجایی که دستور ps اطلاعات ثابتی را به شما نمایش میدهد شما میتوانید از ابزار watch برای مانیتورینگ لحظه ای پروسس با خروجی های مکرر استفاده کنیم که بعد از هر ثانیه خروجی نمایش خواهد داد همانند دستور زیر که یک دستور دلخواه ps را به منظور هدف مورد نظر مشخص کرده است.
    کد PHP:
    watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head' 
    جستجوی یک پراسس در لینوکس








    نکته : ps تنها اطلاعات ثابت را نمایش میدهد برای نمایش مکرر خروجی آپدیت شده شما میتوانید از ابزارهایی همانند htop, top و glances استفاده کنید. دو مورد آخر در حقیقت ابزارهای مانیتورینگ performace سیستم لینوکسی میباشند.


    همچنین توصیه میشود مقالات زیر را مطالعه کنید :

    آنچه که شما باید درباره process ها در لینوکس بدانید

    آموزش نحوه پیداکردن پروسس در حال اجرا و kill کردن آن در لینوکس

    راهنمای دستورات Kill - PKill و Killall برای بستن یک پروسس در لینوکس

    چگونه با استفاده از PID Number نام یک Process را در لینوکس پیدا کنیم

    نحوه پیدا کردن Process های در حال اجرا که CPU و RAM زیادی در Linux مصرف میکنند

    متوقف کردن و غیر فعال کردن سرویس های ناخواسته در لینوکس

    آموزش نحوه پیداکردن پروسس در حال اجرا و kill کردن آن در لینوکس

    نحوه Kill کردن Process های بی مسئولیت با استفاده از دستور xkill در لینوکس

    نحوه ارسال دستورات Linux به بک گراند و برگرداندن آن پروسس به ترمینال

    نحوه بررسی ریسورس های مصرفی توسط کاربران در لینوکس (CPU, Memory)


    اگر شما هر گونه مثال مفیدی از دستور ps دارید با ما در اینجا به اشتراک بگذارید. (فراموش نکنید که توضیح دهید این دستور به چه منظور استفاده میشود)
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 11-01-2021, 01:56 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X