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

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

زهرا عزتی

در لینوکس ، یک نمونه برنامه به نام فرآيند موجود است. گاهی اوقات ، هنگام کار بر روی دستگاه لینوکس ، ممکن است لازم باشد که بدانید در حال حاضر چه فرآیندهایی اجرا می شوند. تعدادی دستور وجود دارد که می توانید برای یافتن اطلاعات در مورد مراحل اجرا با استفاده از ps ، pstree و بالاترین رایج ترین آنها استفاده کنید. در این مقاله نحوه استفاده از دستور ps برای لیست کردن فرآیندهای در حال اجرا و نمایش اطلاعات در مورد آن فرآیندها توضیح داده شده است. با ما در شتابان هاست همراه باشيد.

نحوه استفاده از دستور  ps

نحو کلی دستور ps به شرح زیر است:

ps [OPTIONS]

به دلایل تاریخی و سازگاری ، دستور ps چندین گزینه مختلف را می پذیرد:

  • گزینه های سبک UNIX ، که قبل از یک خط ترد انجام می شود.
  • گزینه های سبک BSD ، بدون خط تیره استفاده می شود.
  • گزینه های طولانی GNU ، قبل از دو خط تیره.
  • انواع مختلفی می توانند با هم مخلوط شوند ، اما در بعضی موارد خاص ، درگیری ها ظاهر می شوند ، بنابراین بهتر است یکي از گزينه ها را انتخاب كنيد.

گزینه های BSD و UNIX می توانند گروه بندی شوند.

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

ps

خروجی شامل اطلاعات مربوط به پوسته (bash) و فرایندی است که در این پوسته اجرا می شود (ps ، دستوری که تایپ کردید):

 PID TTY          TIME CMD
 ۱۸۰۹ pts/0    00:00:00 bash
 ۲۰۴۳ pts/0    00:00:00 ps

چهار ستون دارای PID ، TTY ، TIME و CMD هستند.

  • PID – شناسه فرآیند. معمولاً هنگام اجرای دستور ps ، مهمترین اطلاعاتی که کاربر به دنبال آن است فرایند PID است. دانستن PID به شما امکان می دهد فرآیند خرابکاری را از بین ببرید.
  • TTY – نام ترمینال کنترل کننده فرآیند.
  • TIME – زمان CPU تجمعی فرآیند ، در چند دقیقه و ثانیه نشان داده می شود.
  • CMD – نام دستوری که برای شروع فرآیند استفاده شده است.

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

ps اغلب با ترکیب زیر از گزینه ها استفاده می شود:

فرم BSD:

ps aux

گزینه ای به ps می گوید که فرآیندهای همه کاربران را نمایش می دهد. فقط فرآیندی که با یک ترمینال و فرآیندهای رهبران گروه همراه نیست نشان داده نمی شود.
u مخفف قالب کاربر گرا است که اطلاعات مفصلی در مورد فرآیندها ارائه می دهد.
گزینه x به ps می آموزد که فرآیندها را بدون یک ترمینال کنترل کننده لیست کند. اینها عمدتا فرآیندی هستند که در زمان بوت شدن شروع می شوند و در پس زمینه در حال اجرا هستند.
این دستور اطلاعات را در یازده ستون با برچسب USER ، PID ،٪ CPU ،٪ MEM ، VSZ ، RSS ، STAT ، START ، TTY ، TIME و CMD نشان می دهد.

SER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.8  77616  8604 ?        Ss   19:47   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    19:47   0:00 [kthreadd]
...

ما قبلاً برچسب های PID ، TTY ، TIME و CMD را توضیح دادیم. در اینجا توضیحی در مورد برچسب های دیگر آورده شده است:

  • USER: کاربری که فرایند را اجرا می کند.
  • %CPU: استفاده از پردازش cpu.
  • %MEM: درصد اندازه حافظه فیزیکی دستگاه را تعیین می کند.
  • VSZ: اندازه حافظه مجازی فرایند در KiB.
  • RSS: اندازه حافظه فیزیکی که فرایند استفاده می کند.
  • START: زمان شروع دستور.

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

ps aux --sort=-%mem

فرم UNIX:

ps -ef

گزینه -e به ps می آموزد تا تمام مراحل را نمایش دهد.

این دستور اطلاعات را در هشت ستون با نام های UID ، PID ، PPID ، C ، STIME ، TIME و CMD نشان می دهد.

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 19:47 ?        00:00:01 /sbin/init
root         2     0  0 19:47 ?        00:00:00 [kthreadd]
...

برچسب هایی که قبلاً توضیح داده نشده اند این معنی را دارند:

  • UID: مانند USER ، کاربری که فرایند را اجرا می کند.
  • PPID: شناسه فرآیند.
  • C: مشابه٪ CPU ، استفاده از CPU فرآیند.
  • STIME: زمان شروع ، زمان شروع دستور.

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

ps -f -U linuxize -u linuxize

قالب تعریف شده توسط کاربر

گزینه o به شما امکان می دهد هنگام اجرای دستور ps مشخص کنید که کدام ستون ها نمایش داده می شوند.

به عنوان مثال ، برای چاپ اطلاعات فقط در مورد PID و CommAND ، شما یکی از دستورات زیر را اجرا می کنید:

ps -efo pid,comm
ps auxo pid,comm

استفاده از ps با دستورات دیگر

ps را می توان در ترکیب با سایر دستورات از طریق piping استفاده کرد.

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

ps -ef | less

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

ps -ef | grep root

دستور ps یکی از متداول ترین دستورات در هنگام عیب یابی در سیستم های لینوکس است. این گزینه های زیادی دارد ، اما معمولاً بیشتر کاربران برای جمع آوری اطلاعات مربوط به مراحل اجرا از ps یا aux یا ps -ef استفاده می کنند. ما را در شتابان هاست دنبال كنيد.

برچسب ها: دستورات لينوكس