در لینوکس ، یک نمونه برنامه به نام فرآيند موجود است. گاهی اوقات ، هنگام کار بر روی دستگاه لینوکس ، ممکن است لازم باشد که بدانید در حال حاضر چه فرآیندهایی اجرا می شوند. تعدادی دستور وجود دارد که می توانید برای یافتن اطلاعات در مورد مراحل اجرا با استفاده از ps ، pstree و بالاترین رایج ترین آنها استفاده کنید. در این مقاله نحوه استفاده از دستور ps برای لیست کردن فرآیندهای در حال اجرا و نمایش اطلاعات در مورد آن فرآیندها توضیح داده شده است. با ما در شتابان هاست همراه باشيد.
نحو کلی دستور ps به شرح زیر است:
ps [OPTIONS]
به دلایل تاریخی و سازگاری ، دستور ps چندین گزینه مختلف را می پذیرد:
گزینه های 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 هستند.
خروجی فوق مفید نیست زیرا حاوی اطلاعات زیادی نبوده و قدرت واقعی دستور 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 را توضیح دادیم. در اینجا توضیحی در مورد برچسب های دیگر آورده شده است:
دستور 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] ...
برچسب هایی که قبلاً توضیح داده نشده اند این معنی را دارند:
برای مشاهده فقط فرآیندهای در حال اجرا به عنوان یک کاربر خاص ، دستور زیر را تایپ کنید ، جایی که linuxize نام کاربر است:
ps -f -U linuxize -u linuxize
گزینه o به شما امکان می دهد هنگام اجرای دستور ps مشخص کنید که کدام ستون ها نمایش داده می شوند.
به عنوان مثال ، برای چاپ اطلاعات فقط در مورد PID و CommAND ، شما یکی از دستورات زیر را اجرا می کنید:
ps -efo pid,comm
ps auxo pid,comm
ps را می توان در ترکیب با سایر دستورات از طریق piping استفاده کرد.
اگر می خواهید خروجی دستور ps را نمایش دهید ، یک صفحه به یک زمان آن را به دستور کمتر منتقل کنید:
ps -ef | less
خروجی دستور ps را می توان با grep فیلتر کرد. به عنوان مثال ، برای نمایش فقط فرآیند متعلق به کاربر اصلی شما اجرا می کنید:
ps -ef | grep root
دستور ps یکی از متداول ترین دستورات در هنگام عیب یابی در سیستم های لینوکس است. این گزینه های زیادی دارد ، اما معمولاً بیشتر کاربران برای جمع آوری اطلاعات مربوط به مراحل اجرا از ps یا aux یا ps -ef استفاده می کنند. ما را در شتابان هاست دنبال كنيد.