خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
لیست کردن فرآیندها در لینوکس با دستور ps
در لینوکس به یک instance در حال اجرا از یک برنامه، فرآیند یا پردازش(process) گفته می شود بعضا هنگام کار روی سیستم های لینوکس شاید لازم باشد بدانید که چه فرآیندهایی روی سیستم در حال اجرا هستند.
تعدادی دستور وجود دارد که می توانید از آنها برای یافتن اطلاعات در مورد فرآیندهای در حال اجرا استفاده کنید که ps، pstree و top رایج ترین آنها هستند.
این مقاله نحوه استفاده از دستور ps را برای لیست کردن فرآیندهای در حال اجرا و نمایش اطلاعات مربوط به آن فرآیندها توضیح می دهد.
به دلایل تاریخی و سازگاری، دستور ps چندین نوع مختلف گزینه را می پذیرد:
گزینه های سبک یونیکس، قبل از یک خط تیره.
گزینه های سبک BSD، بدون خط تیره استفاده می شود.
گزینه های طولانی گنو، قبل از دو خط تیره.
انواع گزینه های مختلف را می توان ترکیب کرد، اما در برخی موارد خاص، تضادها ممکن است ظاهر شوند، بنابراین بهتر است از یک نوع گزینه استفاده کنید. گزینه های BSD و UNIX را می توان گروه بندی کرد.
در سادهترین شکل، وقتی ps بدون هیچ گزینهای استفاده شود، ps چهار ستون اطلاعات را برای حداقل دو فرآیند در حال اجرا در shell جاری، خود shell و فرآیندهایی که در shell هنگام فراخوانی دستور اجرا میشوند را نمایش می دهد.
خروجی شامل اطلاعاتی در مورد شل (bash) و فرآیند در حال اجرا در این شل است (ps، دستوری که تایپ کردید):
این چهار ستون دارای لیبل PID، TTY، TIME و CMD هستند.
PID - شناسه فرآیند یا process ID است. معمولاً هنگام اجرای دستور ps، مهمترین اطلاعاتی که کاربر به دنبال آن است، PID است. دانستن PID به شما این امکان را می دهد که یک فرآیند نادرست را kill کنید.
TTY - نام ترمینال کنترل کننده فرآیند است.
TIME – در فرمت دقیقه و ثانیه CPU Time فرآیند را نشان می دهد.
CMD - نام دستوری که برای استارت فرآیند استفاده شده است.
خروجی فوق چون حاوی اطلاعات درست و درمانی نیست، چندان به درد بخور نیست. قدرت واقعی فرمان ps زمانی قابل لمس است که با گزینه ها همراه شود.
دستور ps تعداد زیادی گزینه را می پذیرد که می توان از آنها برای نمایش گروه خاصی از فرآیندها و اطلاعات مختلف در مورد فرآیند استفاده کرد، اما فقط تعداد انگشت شماری از این گزینه ها در استفاده روزمره ما مورد نیاز هستند.
ps اغلب با ترکیبی از گزینه های زیر استفاده می شود:
گزینه a به ps می گوید که فرآیندهای همه کاربران را نمایش دهد.
u مخفف user-oriented یک فرمت کاربر محور است که اطلاعات دقیقی در مورد فرآیندها ارائه می دهد.
گزینه x به ps دستور می دهد تا فرآیندها را بدون کنترل ترمینال لیست کند. این فرآیندها عمدتاً فرآیندهایی هستند که در زمان بوت سیستم استارت شده و در بک گراند سیستم اجرا می شوند.
این فرمان اطلاعات را در یازده ستون با لیبل های USER، PID، %CPU، %MEM، VSZ، RSS، STAT، START، TTY، TIME و CMD نمایش میدهد.
گزینه f به ps می گوید که بصورت درختی(tree view) پردازش ها را از والد به فرزند یا parent to child نشان دهد.
دستور ps همچنین به شما اجازه می دهد تا خروجی را sort کنید. به عنوان مثال، برای مرتب کردن خروجی بر اساس میزان مصرف RAM، از دستور زیر استفاده کنید:
گزینه e- به ps دستور می دهد تا تمام فرآیندها را نمایش دهد.
گزینه f- یک لیست با فرمت کامل است که اطلاعات دقیقی در مورد فرآیندها ارائه می دهد.
این دستور اطلاعات را در هشت ستون با لیبل های UID، PID، PPID، C، STIME، TIME و CMD نمایش میدهد.
UID - همان USER، کاربری که فرآیند را اجرا می کند.
PPID - شناسه فرآیند والد(parent process ID).
C - همانند CPU%، میزان استفاده از CPU.
STIME - مانند START، زمانی است که دستور اجرا شده است.
برای مشاهده فقط فرآیندهای در حال اجرا به عنوان یک کاربر خاص، دستور زیر را تایپ کنید، که در آن khoshamoz نام کاربر است:
ps را می توان در ترکیب با دستورات دیگر از طریق pipe استفاده کرد.
اگر میخواهید خروجی دستور ps را نمایش دهید، هر بار یک صفحه آن را به دستور less انتقال دهید:
خروجی دستور ps را می توان با grep فیلتر کرد. به عنوان مثال، برای نشان دادن فرآیندهای متعلق به کاربر root دستور زیر را باید اجرا کنید:
تعدادی دستور وجود دارد که می توانید از آنها برای یافتن اطلاعات در مورد فرآیندهای در حال اجرا استفاده کنید که ps، pstree و top رایج ترین آنها هستند.
این مقاله نحوه استفاده از دستور ps را برای لیست کردن فرآیندهای در حال اجرا و نمایش اطلاعات مربوط به آن فرآیندها توضیح می دهد.
How to Use ps Command
سینتکس کلی دستور ps به شرح زیر است:ps [OPTIONS]
به دلایل تاریخی و سازگاری، دستور ps چندین نوع مختلف گزینه را می پذیرد:
گزینه های سبک یونیکس، قبل از یک خط تیره.
گزینه های سبک BSD، بدون خط تیره استفاده می شود.
گزینه های طولانی گنو، قبل از دو خط تیره.
انواع گزینه های مختلف را می توان ترکیب کرد، اما در برخی موارد خاص، تضادها ممکن است ظاهر شوند، بنابراین بهتر است از یک نوع گزینه استفاده کنید. گزینه های BSD و UNIX را می توان گروه بندی کرد.
در سادهترین شکل، وقتی ps بدون هیچ گزینهای استفاده شود، ps چهار ستون اطلاعات را برای حداقل دو فرآیند در حال اجرا در shell جاری، خود shell و فرآیندهایی که در shell هنگام فراخوانی دستور اجرا میشوند را نمایش می دهد.
ps
خروجی شامل اطلاعاتی در مورد شل (bash) و فرآیند در حال اجرا در این شل است (ps، دستوری که تایپ کردید):
PID TTY TIME CMD
1809 pts/0 00:00:00 bash
2043 pts/0 00:00:00 ps
این چهار ستون دارای لیبل PID، TTY، TIME و CMD هستند.
PID - شناسه فرآیند یا process ID است. معمولاً هنگام اجرای دستور ps، مهمترین اطلاعاتی که کاربر به دنبال آن است، PID است. دانستن PID به شما این امکان را می دهد که یک فرآیند نادرست را kill کنید.
TTY - نام ترمینال کنترل کننده فرآیند است.
TIME – در فرمت دقیقه و ثانیه CPU Time فرآیند را نشان می دهد.
CMD - نام دستوری که برای استارت فرآیند استفاده شده است.
خروجی فوق چون حاوی اطلاعات درست و درمانی نیست، چندان به درد بخور نیست. قدرت واقعی فرمان ps زمانی قابل لمس است که با گزینه ها همراه شود.
دستور ps تعداد زیادی گزینه را می پذیرد که می توان از آنها برای نمایش گروه خاصی از فرآیندها و اطلاعات مختلف در مورد فرآیند استفاده کرد، اما فقط تعداد انگشت شماری از این گزینه ها در استفاده روزمره ما مورد نیاز هستند.
ps اغلب با ترکیبی از گزینه های زیر استفاده می شود:
BSD form:
ps aux
گزینه a به ps می گوید که فرآیندهای همه کاربران را نمایش دهد.
u مخفف user-oriented یک فرمت کاربر محور است که اطلاعات دقیقی در مورد فرآیندها ارائه می دهد.
گزینه x به ps دستور می دهد تا فرآیندها را بدون کنترل ترمینال لیست کند. این فرآیندها عمدتاً فرآیندهایی هستند که در زمان بوت سیستم استارت شده و در بک گراند سیستم اجرا می شوند.
این فرمان اطلاعات را در یازده ستون با لیبل های USER، PID، %CPU، %MEM، VSZ، RSS، STAT، START، TTY، TIME و CMD نمایش میدهد.
USER 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]
...
گزینه f به ps می گوید که بصورت درختی(tree view) پردازش ها را از والد به فرزند یا parent to child نشان دهد.
ps auxf
دستور ps همچنین به شما اجازه می دهد تا خروجی را sort کنید. به عنوان مثال، برای مرتب کردن خروجی بر اساس میزان مصرف RAM، از دستور زیر استفاده کنید:
ps aux --sort=-%mem
UNIX form:
ps -ef
گزینه e- به ps دستور می دهد تا تمام فرآیندها را نمایش دهد.
گزینه f- یک لیست با فرمت کامل است که اطلاعات دقیقی در مورد فرآیندها ارائه می دهد.
این دستور اطلاعات را در هشت ستون با لیبل های 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 - شناسه فرآیند والد(parent process ID).
C - همانند CPU%، میزان استفاده از CPU.
STIME - مانند START، زمانی است که دستور اجرا شده است.
برای مشاهده فقط فرآیندهای در حال اجرا به عنوان یک کاربر خاص، دستور زیر را تایپ کنید، که در آن khoshamoz نام کاربر است:
ps -f -U linuxize -u khoshamoz
User-defined Format
گزینه o به شما این امکان را می دهد که مشخص کنید هنگام اجرای دستور ps کدام ستون ها نمایش داده شوند. به عنوان مثال، برای چاپ اطلاعات فقط در مورد PID و COMMAND، باید یکی از دستورات زیر را اجرا کنید:ps -efo pid,comm
ps auxo pid,comm
ps را می توان در ترکیب با دستورات دیگر از طریق pipe استفاده کرد.
اگر میخواهید خروجی دستور ps را نمایش دهید، هر بار یک صفحه آن را به دستور less انتقال دهید:
ps -ef | less
خروجی دستور ps را می توان با grep فیلتر کرد. به عنوان مثال، برای نشان دادن فرآیندهای متعلق به کاربر root دستور زیر را باید اجرا کنید:
ps -ef | grep root
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: