امروز: ۰۲ آذر ۱۴۰۳
در مسیر توسعه فردی و سازمانی
اشتراک دانش بهاره قلندر نژاد » سوئیچ های مختلف دستور ps (ویرایش در ۱۳۹۵/۸/۰۳)
تایید شده

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


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


بعنوان مثال با اجرای دستور ps  خروجی بصورت زیر خواهد بود:


  PID TTY          TIME CMD


14816 pts/8    00:00:00 bash


14826 pts/8    00:00:00 ps


Ps  با سوئیچ f  برای نمایش بصورت full format  استفاده می شود که خروجی های بیشتری را نمایش میدهد، مثال:


UID        PID  PPID  C STIME TTY          TIME CMD


ghaland+ 14816 14815  0 11:04 pts/8    00:00:00 -bash


ghaland+ 14830 14816  0 11:04 pts/8    00:00:00 ps -f


-A  یا –e  جهت نمایش کلیه پروسه ها  استفاده می شود .


x برای نمایش پروسه‌هایی که چه از طریق ترمینال و چه از غیر آن اجرا شده باشند، استفاده می‌شود.


r  پروسه های در حال اجرا را نمایش می دهد.


u کاربر اجرا کننده پروسه را نیز نمایش می دهد. بعنوان مثال:


ps -u


USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND


ghaland+ 13860  0.0  0.1  22460  5032 pts/2    Ss   08:32   0:00 -bash


ghaland+ 14816  0.0  0.1  22460  5004 pts/8    Ss   11:04   0:00 -bash


ghaland+ 14835  0.0  0.1  37364  3352 pts/8    R+   11:14   0:00 ps –u


برای اینکه پروسه های در حال اجرا یک کاربر خاص مشاهده شود ،  از دستور ps -u USERNAME می توان استفاده نمود که نام یوزر مورد نظر جایگزین USERNAME می شود بعنوان مثال:


ps -u george


 PID TTY          TIME CMD


1053 ?        00:00:00 systemd


1062 ?        00:00:00 (sd-pam)


1074 tty1     00:00:00 zsh


...


g  برای نمایش پروسه های group استفاده می شود، مثال:


ps -g users


--sort  با استفاده از  این سوئیچ می توانید خروجی دستور ps  را براساس cmd,pid.user,size,uid, …  مرتب کنید، مثال:


ps  --sort pid


  PID TTY          TIME CMD


14816 pts/8    00:00:00 bash


15159 pts/8    00:00:00 ps


C  با استفاده از این سوئیچ می توان پروسه ها را بر اساس command  جستجوکرد.


بعنوان مثال در صورتیکه مروگرchrome  در حال اجرا باشد با اجرای ps -C chrome پروسه های مربوط به این برنامه نمایش داده می شود و برای هر tab که باز باشد یک پروسه جدا را نمایش میدهد.


 H  پروسه ها را بصورت ساختار درختی نمایش می دهد و با استفاده از آن می توان زیر پروسه های هر پروسه را مشاهده نمود. بعنوان مثال:


 ps -eH


  PID TTY          TIME CMD


 5735 ?        00:00:07   tmux


 5736 pts/2    00:00:00     zsh


12608 pts/2    00:00:08       vim


 5763 pts/3    00:00:00     zsh


17185 pts/3    00:00:00       ps


--forest همچنین امکان مشاهده بصورت کد اسکی نیز میسر است


ps -e --forest


 PID TTY          TIME CMD


 5735 ?        00:00:07 tmux


 5736 pts/2    00:00:00  \_ zsh


12608 pts/2    00:00:08  |   \_ vim


 5763 pts/3    00:00:00  \_ zsh


1695 pts/3    00:00:00      \_ ps


جهت مشاهده ۱۰ پروسه‌ای که بیشترین میزان مصرف حافظه را دارند، می توان از دستور زیر استفاده نمود:


ps -auxf | sort -nr -k 4 | head -10


جهت مشاهده ۱۰ پروسه‌ای که بیشترین میزان مصرف cpu  را دارند، می توان از دستور زیر استفاده نمود:


ps -auxf | sort -nr -k 3 | head -10


p جهت مشاهده پروسه های در حال اجرا با pid های مورد نظر، بعنوان مثال:


ps -p 12608 3995


  PID TTY      STAT   TIME COMMAND


 3995 ?        Ss     0:00 st


12608 pts/2    S+     0:04 vim content/post/unix-ps.md


 


از طریق روش های زیر می توان شماره پروسه برنامه مورد نظر را بدست آورد، بعنوان مثال:


pgrep mysqld


یا


pidof  mysqld


یا


ps aux | grep mysqld


یا


ps -C mysqld -o pid=


o از طریق این سوئیچ می توان ستون هایی که در خروجی قابل نمایش باشد را  مشخص نمود،بعنوان مثال جهت نمایش نام پروسه‌ای شماره پروسه آن ۴۴۳۹ باشد، می توان از دستور زیر استفاده نمود.


ps -p 4439 -o comm=


با استفاده از دستور kill  نیز می توان پروسه های مورد نظر را  متوقف نمود.


Kill  pid که شماره پروسه جایگزین pid می شود.


دو مثال در این زمینه :


مثال 1:


sleep 100 &


[1] 21664


kill $(ps -e | grep 'sleep' | awk '{print $1}')


                                                                                                                                                        [1]  + terminated  sleep 100


مثال2:


sleep 100 &


pkill sleep


[1]  + terminated  sleep 100

محتوای آخرین دربهای گشوده شده
  • یک باک بنزین 206 معادل 75000 ت بوسیله کلیدک
  • 45000 تومان وجه نقد رایج مملکت بوسیله کلیدک
  • بن خرید یک عدد پیتزا American معادل 35ت بوسیله کلیدک
  • دو عدد  کارت سبز بوسیله کلیدک
  • دو روز ناهار میهمان شرکت به انتخاب خودتان معادل هر نهار ۳۰ ت بوسیله کلیدک
  • بن خرید یک عدد پیتزا American معادل 35ت بوسیله کلیدک
  • بن خرید یک عدد پیتزا American معادل 35ت بوسیله کلیدک
  • 45000 تومان وجه نقد رایج مملکت بوسیله کلیدک
ارسال درخواست دوره یا محتوای آموزشی