آشنایی با دستور ps aux در لینوکس

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


فرآیندها در لینوکس چیست؟

هنگامی که یک دستور را اجرا یا یک برنامه را در لینوکس باز می‌کنید، یک فرآیند آغاز می‌گردد، البته برنامه‌ها چندین فرآیند را برای وظایف مختلف تولید و اجرا می‌کنند، در حالی که دستورات فقط یکی را ایجاد می‌نمایند. به عنوان مثال، هنگامی که ویرایشگر کد ویژوال استودیو را راه اندازی کنید، فرآیندی را شروع می‌کنید که تنها با خروج یا پایان دادن به برنامه Visual Studio Code متوقف می‌شود. 
هنگامی که دستوری را در ترمینال اجرا می‌کنید، فرآیندی را شروع می‌کند که تنها زمانی پایان می‌یابد که دستور کامل شده یا پایان یابد.


فرآیندهای در حال اجرا در لینوکس را فهرست کنید

از یکی از سه دستور زیر برای فهرست کردن فرآیندها در لینوکس استفاده کنید:

  • ps - لیستی از تمام فرآیندها را نمایش می‌دهد و می‌توان از آن با گزینه‌هایی برای دریافت خروجی دقیق‌تر استفاده کرد.
  • top - لیستی زنده از فرآیندهای فعال فعلی را نمایش می‌دهد و به شما امکان می‌دهد با کشتن، توقف، تغییر اولویت و غیره با آنها تعامل داشته باشید.
  • htop – نتایج آنی در یک خروجی کاربرپسند با فرصت درگیر شدن با فرآیند

 

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

دستور ps  مخفف Process Status ابزاری در لینوکس است که دیدگاهی از اطلاعات مربوط به فرآیند درون یک سیستم ارائه می‌دهد. برای مثال، اگر می‌خواهید شناسه فرآیند خاصی را در لینوکس مشاهده یا مدیریت کنید، از جمله اطلاعات اولیه مورد نیاز برای فرآیند داده شده، این دستور مفید است.

ساختار اصلی دستور ps عبارت است از:

$ ps  [OPTIONS]


شناسایی پردازش‌های مشکل‌ساز یکی از نیازهای کاربران لینوکس است؛ دستور ps یکی از دستورات مفید در این زمینه است چرا که هم مشخصات پردازش‌ مانند نام و شناسه و ارتباط با دیگر پردازش‌ها را نمایش می‌دهد و هم میزان استفاده از پردازنده توسط هر پردازش را ذکر می‌کند. 

 

آشنایی با آپشن‌های دستور ps 

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

  • گزینه های شبه یونیکس -  که باید به همراه «-» بیاید و قابل گروه بندی است. به عنوان مثال  -aux  
  • گزینه‌های BSD این گزینه‌ها به کاراکترهای گروه‌بندی‌شده مانند «help» یا «aux» نیاز ندارند.
  • گزینه‌های GNU که باید به همراه «--» بیاید. به عنوان مثال، --deselect

در ادامه برخی از آپشن‌های دستور ps  را بررسی می‌کنیم که با شناسه فرآیند مرتبط هستند:
 

  • a  فهرستی از تمام فرآیندهایی که برای همه کاربران مشکل ایجاد می‌کنند تهیه کنید.
  • -A, -e  نمایش لیستی از تمام فرآیندهای روی سیستم.
  • -a   فهرستی از تمام فرآیندها، به استثنای رهبران جلسه (کسانی که شناسه فرآیند آنها با شناسه جلسه * یکسان است) و آنهایی که با یک ترمینال مرتبط نیستند.
  • -d   به جز رهبران جلسه، تمام فرآیندها را فهرست کنید.
  • –deselect, - N    هر فرآیندی را که شرایط تعریف شده توسط کاربر را برآورده نمی کند از لیست حذف کنید.
  • f   از هنر ASCII برای نمایش سلسله مراتب فرآیند استفاده می کند.
  • -j   خروجی را در فرمت jobs نشان می‌دهد.
  • T   فهرستی از تمام فرآیندهایی که به این ترمینال متصل هستند تهیه کنید.
  • r   فقط فرآیندهایی را فهرست کنید که در حال حاضر فعال هستند.
  • u   اندازه خروجی را افزایش دهید تا اطلاعات بیشتری مانند استفاده از پردازنده و حافظه را در بر بگیرد.
  • -u   کاربری را تعریف کنید که می خواهید فرآیندها را برای او فهرست کنید.
  • x   فرآیندهای بدون TTY گنجانده شده است.

 

وقتی دستور ps ساده را فعال می‌کنیم که به صورت زیر وارد می شود:

$ ps

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

ستون‌های زیر در خروجی به شما نمایش داده می‌شود:

  • PID - شناسه (ID) فرآیندهای در حال اجرا 
  • TTY -  نوع ترمینال ورودی توسط کاربر
  • TIME -  میزان استفاده از CPU
  • CMD - نام دستور اجرایی فرایند موردنظر


ستون ها در ps aux چیست؟

برای نمایش AUX در دستور  ستورن‌های زیر در خروجی نمایش داده خواهد شد:

  • A - این گزینه برای نمایش کاربرانی که در حال اجرای فرآیندها هستند استفاده می‌شود.
  • U -  این گزینه اطلاعات مفید دیگری را در مورد فرآیندها نمایش می‌دهد.
  • X -  این گزینه فرآیندهایی را نشان می‌دهد که با هیچ صفحه ترمینال در حال اجرا مرتبط نیستند.

هر یک از اینها هنگام اجرای دستور خروجی پیش فرض استاندارد ps aux ارائه می شود که به صورت زیر خواهد بود:

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

همانطور که می بینید، هنگام استفاده از دستور ps aux به عنوان یک لیست تمام فرمت، ستون های زیادی اعمال می شوند.


چگونه از ابزار ps  با گزینه A استفاده کنیم؟ 

اجازه دهید خروجی آپشن a را مشاهده کنیم، دستور زیر را وارد کنید:


$ ps a

خروجی ps a در لینوکس


پس از تکمیل، باید PID (شناسه‌ فرآیند) را به همراه ستون STAT مشاهده کنید که کدهای وضعیت فرآیندهای در حال اجرا را نشان می‌دهد. به عنوان مثال، فرآیند S شبیه فرآیند sleep است، در حالی که R نشان دهنده فرآیند در حال اجرا (running) است.
همانطور که قبلا ذکر شد، A شناسه‌های فرآیند (process ID) و وضعیت شناسه جلسه را برای هر کاربر واقعی نمایش می‌دهد.

چگونه از ابزار ps  با گزینه U استفاده کنیم؟

خروجی U عرض نمایش پیش فرض و فرمت حافظه مجازی با ویژگی‌های ارزشمندتر است و یک تنظیم کلی کنترل فرمت خروجی تعریف شده توسط کاربر را ارائه می‌دهد.برای نمایش این دستور، به سادگی وارد کنید:

$ ps u

خروجی ps u در لینوکس

در خروجی، ستون های زیر را ارائه می دهید:

  • USER -  کاربری را که فرآیند را اجرا می‌کند نمایش می‌دهد که می‌تواند یک شماره شناسه کاربری UID باشد.
  • CPU% - درصدی از CPU را که در فرآیند استفاده می‌شود را نشان می‌دهد.
  • MEM% -  درصد RAM مورد استفاده در فرآیند را نشان می‌دهد.
  • VSZ -  اندازه حافظه مجازی اشغال شده توسط فرآیند را نشان می‌دهد.
  • RSS -  اندازه حافظه فیزیکی مورد استفاده در فرآیند را نشان می‌دهد.
  • START -  زمانی که فرآیند شروع می شود اندازه را نشان می‌دهد.
  • COMMAND -  به فرمانی اشاره دارد که فرآیند را آغاز کرده است.


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

$ ps –U  [username]

این کد مجوزهای دسترسی به فایل هر کاربر را برای هر فرآیندی که شناسه کاربری واقعی یا موثر آنها را شناسایی می‌کند، نشان می‌دهد. برای کسانی که به دنبال تاثیر یک کاربر خاص بر روی فایل اجرایی یک فرآیند هستند، می‌تواند مفیدتر باشد. همچنین به شما امکان می‌دهد فرآیند را بر اساس شناسه یا نام کاربری واقعی (RUID) انتخاب کنید. شناسه واقعی کاربر نام کاربر را ارائه می‌کند، در حالی که EUID (شناسه کاربر موثر) کاربری را توصیف می‌کند که مجوزهای دسترسی به فایل او توسط فرآیند در حال اجرا استفاده می‌شود.

 

چگونه از ابزار ps  با گزینه X استفاده کنیم؟

اجرای دستور x آسان است و باید مانند مثال داده شده اجرا شود:

$ ps x

خروجی ps x در لینوکس

هنگامی که دستور به درستی انجام شد، باید ستون‌های زیر به شما نمایش داده شود:

  • PID
  • TTY
  • STAT
  • TIME
  • COMMAND

خروجی عملیاتی   xشبیه به u است. تفاوت بین هر دو گزینه این است که گزینه a جزئیات فرآیندهای در حال اجرا را نشان می دهد در حالی که گزینه x فرآیندهایی را نشان می دهد که در حال اجرا هستند اما با هیچ صفحه ترمینال مرتبط نیستند.

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

ps -axjf

نمایش فرآیند ها به صورت سلسه مراتبی در لینوکس

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

PS در لینوکس چه می کند؟

استفاده از دستورات ps در لینوکس به سیستم اجازه می‌دهد تا وضعیت تنها فرآیندهای در حال اجرا را کنترل کند و جزئیات فنی را در مورد آنها نشان دهد که برای وظایف اداری و برای تعریف اولویت‌های هر فرآیند (از طریق فایل های مجازی) مفید است.

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

استفاده از دستور ps با گزینه‌های aux در لینوکس چیست؟
هنگامی که دستور ps با گزینه aux اجرا می شود، تمام اطلاعات فرآیندهای مورد بحث در بالا را نمایش می دهد. به عنوان مثال، دستور زیر را اجرا می‌کنیم:

$ ps aux

چگونه یک فرآیند را در لینوکس از بین ببریم؟

برای خاتمه دادن به یک فرآیند در لینوکس، می توانید از دستور kill استفاده کنید. ابتدا، فرآیندی را که می‌خواهید به پایان برسانید، با استفاده از دستور ps برای فهرست کردن فرآیندهای فعال شناسایی کنید. هنگامی که شناسه فرآیند (PID) را پیدا کردید، kill  و سپس PID را تایپ کنید.

به عنوان مثال، اگر PID 12345 است، kill 12345 را تایپ کرده و Enter را فشار دهید. اگر برای پایان دادن به فرآیند به نیروی بیشتری نیاز دارید، می‌توانید از kill -9 و سپس PID استفاده کنید، مانند kill -9 12345 این روند به سرعت متوقف می‌شود. به یاد داشته باشید، هنگام پایان دادن به فرآیندها، به ویژه فرآیندهای حیاتی، احتیاط کنید، زیرا می تواند بر پایداری سیستم تاثیر بگذارد.


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

$ man ps