تکنولوژی

آموزش بستن اجباری پردازش‌های در لینوکس با kill و pkill و killall

در مک‌او‌اس با استفاده از Activity Monitor می‌توان میزان استفاده از پردازنده، رم و سایر منابع مثل دیسک و شبکه را بررسی کرد و همین‌طور پردازش‌ها را اجباراً بست یا به عبارتی Quit کرد. اما بستن هر پردازشی توصیه نمی‌شود و در واقع نباید برخی پردازش‌های پس‌زمینه را با استفاده از اکتیویتی مانیتور به صورت اجباری متوقف کرد چرا که ممکن است مشکلات جدی ایجاد شود و نیاز به خاموش و روشن کردن سیستم باشد.

در این مقاله به بحث در مورد اینکه بستن چه پردازش‌هایی مشکل جدی ایجاد نمی‌کند، می‌پردازیم. با ما باشید.

کاربران MacBook و iMac می‌توانند از ابزاری به اسم Activity Monitor برای مانیتور کردن پردازش‌ها استفاده کنند. این ابزار مفید و کاربردی، شبیه به Task Manager ویندوز است و در آن لیستی از برنامه‌ها و پردازش‌هایی که در پس‌زمینه اجرا شده، نمایش داده می‌شود. به سادگی می‌توان پردازشی که درصد بالایی از توان پردازشی CPU را به خود اختصاص داده یا با پر کردن چند گیگابایت RAM، مشکل کمبود رم را دامن زده، پیدا کرد و آن را متوقف کرد. به این روش توقف، خروج اجباری یا Force Quit گفته می‌شود.

برای آشنایی با Activity Monitor به مقاله‌ی زیر مراجعه فرمایید:

چطور در مک‌های اپل از Ctrl + Alt + Delete مشابه ویندوز استفاده کنیم؟

ستون User در Activity Monitor مک‌او‌اس و پردازش‌هایی که نباید بست!

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

اما همان‌طور که در تصویر فوق مشاهده می‌کنید، برخی کاربران در این ستون، جزو حساب‌های کاربری معمولی نیستند و نام عجیبی دارند. در حقیقت در سیستم عامل macOS اپل و همین‌طور توزیعات مختلف Linux که شبیه به Unix هستند، هر پردازش دارای User یا مالک است و به حساب کاربری خاصی مربوط می‌شود که آن پردازش را راه‌اندازی کرده است.

حساب کاربری اصلی که برای استفاده از مک‌او‌اس ساخته‌اید، تنها یکی از حساب‌های کاربری سیستم شماست. حساب کاربری root که در حقیقت ادمین اصلی است و حساب‌های کاربری متعدد دیگری نیز وجود دارد. این حساب‌های کاربری توسط سیستم مدیریت می‌شوند و طبعاً نامشان برای شما ناشناخته و عجیب است.

جالب است بدانید که در macOS که با روش معمولی نصب شده، بیش از ۲۵۰ حساب کاربری مختلف وجود دارد! نام اغلب این حساب‌های کاربری با آندرلاین یا کاراکتر ـ آغاز می‌شود. در تصویر زیر با اجرای فرمانی ساده در ترمینال مک‌او‌اس، این حساب‌های کاربری لیست شده است:

بستن اجباری کدام پردازش‌ها در مک‌او‌اس از طریق Activity Monitor مشکل ایجاد نمی‌کند؟

علت استفاده از این تعداد زیاد حساب کاربری، نیاز به مدیریت دسترسی‌ها یا Permissions است. در واقع هر پردازشی توسط حساب کاربری خاصی اجرا می‌شود که دسترسی محدودی دارد. به عنوان مثال حساب کاربری _dock تنها به فایل‌هایی دسترسی دارد که به Dock یا نوار پایین صفحه مربوط می‌شود و نه بیشتر. لذا پردازش مربوط به داک، در این حساب کاربری شروع به کار می‌کند. با این روش از دسترسی‌های غیرمجاز، ویروسی شدن و هک شدن، تا حد زیادی جلوگیری می‌شود.

برای مرتب‌سازی پردازش‌ها بر اساس حساب کاربری، کافی است روی عنوان ستون User کلیک کنید. به این ترتیب تمام پردازش‌های مربوط به حساب کاربری شما و همین‌طور سایر کاربران، پشت‌سرهم قرار می‌گیرد. از طرفی می‌توانید روی عنوان ستون درصد مصرف پردازنده یا % CPU کلیک کنید تا پردازش‌ها به ترتیب میزان استفاده از پردازنده، مرتب شوند.

بنابراین حین کار با Activity Monitor برای کاهش استفاده از پردازنده‌ی اصلی، رم و غیره، بهتر است پردازش‌هایی که به حساب‌های کاربری سیستمی تعلق دارد را نبندید. در واقع اگر در ستون User، نامی که با _ آغاز شده، درج شده، بهتر است آن پردازش را متوقف نکنید.

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

نکته‌ی مفید دیگر این است که در کنار نام برخی پردازش‌ها، آیکون اپلیکیشن نمایش داده شده که شناسایی آن را ساده می‌کند. به عنوان مثال در مورد مرورگر Google Chrome این گونه است:

بستن اجباری کدام پردازش‌ها در مک‌او‌اس از طریق Activity Monitor مشکل ایجاد نمی‌کند؟

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

بستن اجباری کدام پردازش‌ها در مک‌او‌اس از طریق Activity Monitor مشکل ایجاد نمی‌کند؟

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

آیکون دوم که به شکل سپر است، به پردازش‌هایی در سطح کاربر مربوط می‌شود مثل Siri یا دستیار صوتی، Finder‌ یا اپ مدیریت فایل و Dock یا نوار پایین صفحه.

آشنایی با حساب root در مک‌ها

حساب مهم روت، حسابی شبیه به حساب administrator‌ ویندوز است که دسترسی‌های زیادی دارد. معمولاً پردازش‌هایی که با این حساب کاربری آغاز شده، پردازش‌های مهم سیستمی است و البته تعدادشان کم است. البته برخی از اپلیکیشن‌هایی که اجرا می‌کنید هم ممکن است با این دسترسی اجرا شوند.

به عنوان مثال ckb-next-daemon که در تصویر زیر مشاهده می‌کنید، در حقیقت درایور جانبی برای موس USB با برند Corsair است. این پردازش با دسترسی روت اجرا شده و برای عملکرد صحیح موس ضروری است. اگر این پردازش به صورت اجباری بسته شود، ممکن است موس به کلی کار نکند!

بستن اجباری کدام پردازش‌ها در مک‌او‌اس از طریق Activity Monitor مشکل ایجاد نمی‌کند؟

بنابراین در مورد پردازش‌هایی که تحت حساب روت اجرا شده، بهتر است بدون اطلاعات دقیق و شناخت کامل، اقدام به Force Quit‌ نکنید.

استفاده از فیلترها برای یافتن پردازش‌ها در Activity Monitor

برای فیلتر کردن پردازش‌ها می‌توانید از منوی View استفاده کنید. به عنوان مثال اگر بخواهید تنها پردازش‌هایی در لیست باقی بماند که دارای پنجره است و در واقع در پس‌زمینه به صورت پنهانی اجرا نشده، می‌توانید روی گزینه‌ی Windowed Processes کلیک کنید.

برای لیست کردن پردازش‌های مربوط به حساب کاربری خویش، می‌توانید گزینه‌ی My Processes‌ را انتخاب کنید.

توجه کنید که در ستون CPU Time، مدت زمان کارکرد پردازش‌ها ذکر می‌شود. لذا اگر بخواهید پردازشی که اخیراً اجرا شده را پیدا کنید، می‌توانید مرتب‌سازی را بر حسب CPU Time انجام بدهید.

در صورت بروز مشکل پس از بستن برخی پردازش‌ها، ساده‌ترین راه حل این است که مک را Restart کنید تا سیستم عامل از نو اجرا شود و پردازشی که اشتباهاً بسته شده، مثل قبل اجرا شود.


در بیشتر توزیعات لینوکس پارتیشنی به اسم Swap حین نصب ایجاد می‌شود یا کاربر آن را به صورت دستی و به تناسب نیاز، ایجاد می‌کند.  این پارتیشن چند کاربری مهم دارد. ممکن است این پارتیشن برای کاربران ویندوز عجیب به نظر برسد چرا که معمولاً اغلب کاربران ویندوز و حتی Linux، سیستم عامل را روی یک پارتیشن نصب می‌کنند اما در واقع در ویندوز هم امکان Hibernate کردن و همین‌طور استفاده از هارددیسک در نقش RAM وجود دارد.

در این مقاله به معرفی پارتیشن Swap در لینوکس و کاربرد آن می‌پردازیم و به این سوال پاسخ می‌دهیم که آیا وجود این پارتیشن ضروری است یا خیر؟ با سیاره‌ی آی‌تی همراه شوید.

پارتیشن Swap چه کاربردی دارد؟

پارتیشن Swap در حقیقت برای گسترش فضای RAM به کار می‌رود. در حالت کلی داده‌هایی که پردازنده برای پردازش نیاز دارد، روی حافظه‌ی RAM و همین‌طور کش پردازنده قرار می‌گیرد تا در صورت نیاز با سرعت بالا و تأخیر کم در اختیار هسته‌های پردازنده قرار گرفته و به سرعت پردازش شود. در واقع هارددیسک و درایوهای SSD نسبت به RAM به مراتب کندتر هستند و اگر قرار باشد پردازنده مرتباً تمام داده‌ها را از هارددیسک بخواند و پردازش کند، زمان زیادی در انتظار دریافت داده می‌ماند و به عبارت دیگر بخش زیادی از قدرت پردازشی پردازنده بلااستفاده می‌ماند.

زمانی که حافظه‌ی RAM پر می‌شود، بخشی از هارددیسک به عنوان رم مورد استفاده قرار می‌گیرد. در برخی توزیعات لینوکس به این فضای خاص، پارتیشن Swap گفته می‌شود.

پارتیشن Swap در لینوکس چیست، چه کاربردی دارد و آیا وجود آن ضروری است؟

با توجه به توضیحات فوق روشن است که استفاده از پارتیشن Swap در نقش رم سیستم، از نظر عملکرد ایده‌ی خوبی نیست. حتی اگر به جای هارددیسک، از درایوهای سریع SSD و به خصوص درایوهای SSD با پروتکل NVMe استفاده کنید هم عملکرد مشابه استفاده از RAM نخواهد بود. در واقع پهنای باند حافظه‌ی کش سطح 1 و 2 و 3 پردازنده به مراتب بالاتر از پهنای باند RAM است و پهنای باند RAM نیز به مراتب بالاتر از پهنای باند انواع SSD و HDD است.

 نکته‌ی مهم این است که پارتیشن Swap کاربردهایی به جز ایفای نقش رم دارد و شاید گاهی ضرورت پیدا می‌کند. در سیستم عامل ویندوز هم پدیده‌ی مشابهی به اسم Page File وجود دارد که به نوعی جایگزین رم محسوب می‌شود. البته تفاوت‌های تکنیکی زیادی بین پیج فایل و پارتیشن سوپ وجود دارد و نمی‌توان این دو را یکسان فرض کرد. در ادامه دیگر کاربردها و نقش پارتیشن Swap دارد را مرور می‌کنیم.

اولویت‌بندی داده‌ها

یک مزیت پارتیشن Swap این است که داده‌هایی که از نظر پردازش، کم‌اهمیت‌تر و کم‌کاربردتر هستند از رم به هارددیسک منتقل می‌شود. به این ترتیب فضای رم به داده‌هایی که در اولویت هستند، تخصیص پیدا می‌کند.

میزان انتقال داده از رم به پارتیشن سوپ قابل تنظیم است. می‌توانید swappiness را افزایش دهید تا احتمال انتقال داده‌های کم‌کاربردتر به پارتیشن سوپ بیشتر شود.

هایبرنیت کردن

در سیستم عامل ویندوز زمانی که می‌خواهید سیستم را به گونه‌ای خاموش کنید که پس از روشن کردن، نیازی به بوت شدن کامل سیستم عامل و اجرا شدن پردازش‌ها و برنامه‌ها نباشد، می‌بایست به جای خاموش کردن یا Shutdown از گزینه‌ی Hibernate یا Sleep استفاده کنید. در لینوکس نیز امکان هایبرنیت کردن وجود دارد.

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

بنابراین بدون پارتیشن Swap امکان هایبرنیت کردن در Linux وجود ندارد.

آیا وجود پارتیشن Swap ضروری است؟

وجود پارتیشن سوپ به نظر مفید و شاید ضروری می‌رسد اما در واقع بسیاری از توزیعات لینوکس بدون وجود پارتیشن Swap، همواره عملکرد خوبی دارند.

پارتیشن Swap در لینوکس چیست، چه کاربردی دارد و آیا وجود آن ضروری است؟

مزایای پارتیشن سوپ را ذکر کردیم اما بد نیست به معایب آن هم اشاره کنیم، شاید با توجه به معایب، به این نتیجه برسید که نیازی به پارتیشن سوپ ندارید.

معایب پارتیشن سوپ

اولین عیب پارتیشن Swap این است که بخشی از فضای هارددیسک یا SSD سیستم شما را اشغال می‌کند. اندازه‌ی پارتیشن سوپ به صورت خودکار تغییر نمی‌کند و در واقع ثابت است و این یعنی مجبور می‌شوید بخشی از فضای درایو ذخیره‌سازی را برای همیشه به آن اختصاص دهید.

دومین عیب پارتیشن سوپ این است که میزان فرسایش هارددیسک و به خصوص SSD را بیشتر می‌کند. عمر مفید درایوهای SSD با میزان نوشتن داده متناسب است و اگر مرتباً داده‌هایی روی پارتیشن سوپ ذخیره شود، طبعاً عمر مفید SSD سیستم شما کاهش پیدا می‌کند.

عیب بعدی این است که اگر هارددیسک سیستم شما کند باشد، با ایجاد پارتیشن Swap، بهبود عملکرد در اغلب کاربردها، ناچیز خواهد بود. به عنوان مثال فرض کنید که مرورگر گوگل کروم را نصب کرده‌اید و تعداد زیادی تب باز کرده‌اید و در عین حال سیستم شما فقط 2 گیگابایت رم دارد. طبعاً از پارتیشن Swap برای باز نگه داشتن تعداد زیادی تب استفاده خواهد شد اما مشکل اینجاست که هارددیسک سیستم شما کند است. لذا متوجه می‌شوید که مرورگر کروم بسیار کند عمل می‌کند! شاید در نهایت مجبور شوید که مرورگر کروم را ببندید و از نو اجرا کنید.

دقت کنید که برخی برنامه‌ها و پردازش‌ها به مقدار زیادی حافظه‌ی RAM نیاز دارند و ممکن است حتی چند گیگابایت حافظه‌ی رم با سرعت بسیار پایین هم در خصوص استفاده از این برنامه‌ها، مفید باشد.

اگر پارتیشن Swap نداشته باشیم، چه اتفاقی می‌افتد؟

اگر تصمیم گرفته‌اید که از پارتیشن Swap به کلی استفاده نکنید، به چند نکته توجه کنید:

آیا کامپیوتر شما به قدر کافی RAM دارد؟

اگر مقدار رم کم است، به فکر ارتقا دادن باشید یا به ناچار از پارتیشن Swap استفاده کنید. در غیر این صورت ممکن است هر از گاهی سیستم شما هنگ کند و نرم‌افزارها بسیار کند عمل کنند. ممکن است مجبور شوید که مرتباً برخی پردازش‌ها و نرم‌افزارهای اضافی را به صورت اجباری ببندید تا فضای رم کمی خالی شود.

آموزش بستن اجباری پردازش‌های در لینوکس با kill و pkill و killall

توصیه‌های مهم در مورد پارتیشن Swap لینوکس

در خصوص انتخاب حجم پارتیشن سوپ به موارد زیر توجه فرمایید:

  • اگر می‌خواهید سیستم لینوکسی را Hibernate کنید، ایجاد پارتیشن Swap الزامی است. حجم پارتیشن را حدود ۱۰ تا ۲۵ درصد بیشتر از حجم RAM سیستم انتخاب کنید تا فضای کافی برای هایبرنیت کردن و همین‌طور ذخیره کردن برخی داده‌های اضافی وجود داشته باشد.
  • اگر هدف شما از ایجاد پارتیشن Swap، بهبود عملکرد و استفاده از قابلیت هایبرنیت است، توجه کنید که می‌بایست سرعت هارددیسک یا SSD سیستم شما بالا باشد.
  • اگر معمولاً از اپلیکیشن‌هایی استفاده می‌کنید که به حافظه‌ی رم زیادی نیاز دارند، احتمالاً ساخت پارتیشن Swap مفید خواهد بود. البته اگر هایبرنیت کردن مدنظر نیست، می‌توانید حجم پارتیشن Swap را کمتر از حجم رم در نظر بگیرید.
  • اگر سیستم شما لپ‌تاپ است و هارددیسک 2.5 اینچی با سرعت دورانی ۵۴۰۰ دور بر دقیقه دارد، دقت کنید که سرعت درایو هارددیسک شما پایین است و استفاده از آن در نقش رم، کمک زیادی به بهبود عملکرد نمی‌کند و حتی ممکن است مشکل‌ساز شود.

تنظیم Swappiness در لینوکس

همان‌طور که اشاره کردیم برای افزایش احتمال انتقال داده‌ها از رم به روی پارتیشن Swap، می‌توانید کمیتی به اسم swappiness را افزایش دهید. برای این منظور می‌بایست یک فایل متنی ساده را تغییر دهید که در مسیر زیر موجود است:

/proc/sys/vm

همان‌طور که در تصویر زیر مشاهده می‌کنید، نام فایل موردبحث، دقیقاً swappiness است.

پارتیشن Swap در لینوکس چیست، چه کاربردی دارد و آیا وجود آن ضروری است؟

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

یک روش ساده برای این کار، استفاده از ترمینال است. به عنوان مثال اگر از توزیعی از لینوکس نظیر اوبونتو یا فدورا استفاده می‌کنید که تکست ادیتور پیش‌فرض GNOME یعنی gedit در آن به صورت پیش‌فرض موجود است، می‌توانید دستور زیر را در ترمینال وارد کرده و Enter را فشار دهید:

برای اطلاعات تکمیلی بهتر است مقاله‌ی زیر را مطالعه فرمایید:

ویرایش متن، فایل‌های سیستمی و پیکربندی با gedit در لینوکس

فایل موردبحث باز می‌شود و می‌توانید آن را تغییر دهید. یک روش دیگر که محدود به تکست ادیتور gedit نیست، استفاده از فرمان زیر است:

می‌توانید عدد swappiness را بین 0 تا 100 وارد کنید. به عنوان مثال عدد ۲۰ به این معنی است که اگر میزان استفاده از رم به ۸۰ درصد برسد، انتقال داده‌ها از رم به پارتیشن Swap آغاز می‌شود. عدد پیش‌فرض Swappiness در لینوکس Ubuntu، عدد ۶۰ است و این یعنی زمانی که میزان استفاده از رم به ۴۰ درصد برسد، تدریجاً برخی داده‌ها از رم به پارتیشن سوپ منتقل می‌شوند.

پس از استفاده از فرمان فوق، می‌توانید فایل swappiness را باز کنید و بررسی کنید که عدد سوپینس به درستی تغییر کرده است یا خیر. به علاوه با باز کردن این فایل می‌توانید تنظیمات فعلی را بررسی کنید.


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

در ادامه به معرفی دستور ps و آپشن‌های آن و شیوه‌ی کاربرد آن می‌پردازیم.

مدیریت پردازش‌ها در لینوکس با دستور ps

کرنل یا هسته، قلب تپنده‌ی سیستم عامل‌های شبیه Unix و تمام توزیعات لینوکس است. یکی از وظایف اصلی کرنل، استفاده از حافظه یا RAM و زمان پردازنده است. می‌بایست در هر لحظه این موارد بررسی و مدیریت شود و به پردازش‌های مختلف به شکل بهینه‌ای تخصیص پیدا کند. برخی پردازش‌ها اولویت بیشتری دارند و برخی کم‌اهمیت‌تر هستند و در هر لحظه نیز ممکن است اولویت‌ها تغییر کند.

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

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

لیست کردن پردازش‌ها در Linux با ps

ساده‌ترین حالت کاربرد دستور ps، اجرا کردن آن در اپلیکیشن ترمینال است، بدون هیچ آپشنی!

آموزش کار با دستور لیست کردن پردازش‌ها یا ps در لینوکس

خروجی دستور فوق یک لیست از پردازش‌ها است:

آموزش کار با دستور لیست کردن پردازش‌ها یا ps در لینوکس

چهار ستون لیست موارد زیر است:

  • PID: شناسه یا شماره‌ای که به هر پردازش اختصاص داده می‌شود.
  • TTY: نام کنسولی که کاربرد در آن لاگین کرده است.
  • TIME: مدت زمان پردازنده که به پردازش اختصاص پیدا کرده است که در واقع میزان استفاده از CPU‌ است.
  • CMD: نام دستوری که پردازش را اجرا کرده است.

لیست کردن پردازش‌های همه‌ی کاربران

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

بد نیست پس از دستور ps -e از دستور less استفاده کنید تا چک کردن لیست ساده‌تر شود:

آموزش کار با دستور لیست کردن پردازش‌ها یا ps در لینوکس

و این هم یک صفحه از لیست طولانی پردازش‌ها:

آموزش کار با دستور لیست کردن پردازش‌ها یا ps در لینوکس

همان‌طور که مشاهده می‌کنید در ستون TTY، علامت ? ذکر شده که به این معنی است که برخی پردازش‌ها از طریق اجرای یک دستور در Terminal آغاز به کار نکرده‌اند.

نمایش نمودار درختی پردازش‌ها

می‌توانید از آپشن دیگری که مخفف hierarchy یا ساختار درختی است، برای نمایش پردازش‌ها به شکل درختی استفاده کنید. در واقع آپشن -H مشخص می‌کند که هر پردازش توسط کدام پردازش دیگری اجرا شده است.

آموزش کار با دستور لیست کردن پردازش‌ها یا ps در لینوکس

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

برای بهتر شدن ظاهر لیست، می‌توانید از آپشن –forest استفاده کنید که خطوطی را به نمودار اضافه می‌کند:

آندرلاین یا ـ و بک‌اسلش یا علامت \ درک کردن نمودار را ساده‌تر می‌کند:

لیست کردن پردازش‌ها با جستجوی نام توسط دستور ps‌ و grep

می‌توانید دستور ps را در ترکیب با دستور grep استفاده کنید و با این روش نام یک پردازش را سرچ کنید. به عنوان مثال با اجرا کردن دستور زیر، هر پردازشی که در نام آن firefox موجود باشد لیست می‌شود:

ممکن است یک پردازش یا چند پردازش مربوط به Firefox موجود باشد.

دستور ps و ستون‌‌های متنوع اطلاعات پردازش‌ها

برای نمایش اطلاعات کامل‌تر می‌توانید ستون‌های اطلاعات پردازش‌ها را با آپشن -f یا full-format کامل کنید:

خروجی دستور فوق به این صورت است:

ستون‌های اطلاعات شامل موارد زیر است:

  • UID: شناسه‌ی کاربری که مالک پردازش است.
  • PID: شناسه‌ی پردازش
  • PPID: شناسه‌ی پردازش بالادست و در واقع پردازش اجراکننده‌ی یک پردازش دیگر است.
  • C: تعداد فرزندان و به عبارتی تعداد پردازش‌های اجرا شده توسط یک پردازش
  • STIME: زمان شروع یا Start Time پردازش
  • TTY: نام کنسول کاربری که کاربر لاگین کرده است.
  • TIME: زمان پردازنده که به پردازش اختصاص پیدا کرده است.
  • CMD: دستوری که موجب اجرای پردازش شده است.

دقت کنید که آپشن -F با -f متفاوت است و به معنی extra full-format یا فرمت کامل‌تر است.

این بار لیست عریض‌تر و ستون‌ها بیشتر می‌شود و احتمالاً به اسکرول کردن افقی برای رویت کردن همه‌ی ستون‌ها کامل نیاز است!

البته نیازی به استفاده از موس نیست، می‌توانید کلید یا در واقع فلش راست را فشار دهید و بخش چپ لیست را مشاهده کنید.

و این بار ستون‌های زیر اضافه می‌شود:

 

  • SZ: یا سایز و اندازه‌ی صفحات تصویر پردازش در RAM
  • RSS: یا Resident set size که حافظه‌ی فیزیکی سوپ نشده‌ای است که پردازش استفاده می‌کند.
  • PSR: یا پردازنده‌ای که پردازش به آن محول شده است.

جستجوی پردازش‌ها با ID یا شناسه‌ی پردازش

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

و خروجی دستور فوق ذکر مشخصات پردازشی با شناسه یا ID موردنظر است:

به عبارت دیگر با آپشن -p می‌توانید در لیست پردازش‌ها یک شناسه‌ی خاص را جستجو کنید.

اگر منظور شما جستجو کردن چند پردازش باشد هم می‌توانید شناسه‌ها را به ترتیب و با زدن اسپیس یا فاصله بینشان، پس از ps -p تایپ کنید.

لیست کردن پردازش‌ها با دستور اجرای پردازش

برای سرچ کردن پردازش‌هایی که با دستور خاصی اجرا شده‌اند، می‌توانید از آپشن -C که مخفف Command است استفاده کنید. پس از این آپشن نام دستور مربوطه را تایپ کنید.

لیست پردازش‌های مربوط به کاربر خاص

آپشن بعدی -u یا user list است که پردازش‌های مربوط به یک حساب کاربری خاص را لیست می‌کند.

دستور فوق پردازش‌های حساب کاربری به اسم mary را لیست می‌کند.

لیست پردازش‌های ترمینال‌های مختلف

با آپشن -t می‌توانید پردازش‌هایی که به یک TTY را بررسی کنید. اگر پس از این دستور عددی تایپ نکنید، پردازش‌های مربوط به ترمینال فعلی لیست می‌شود.

و در صورت ذکر عدد نیز نتیجه به صورت زیر است:

انتخاب ستون‌های لیست خروجی دستور ps

با استفاده از آپشن -o می‌توانید ستون‌های لیستی که با استفاده از دستور ps چاپ می‌شود را به صورت دلخواه انتخاب کنید. به عنوان مثال اگر فقط به دو ستون درصد استفاده از پردازنده یا pcpu و آرگومان‌های دستور یا args در خروجی نیاز داشته باشید، می‌توانید از دستور زیر استفاده کنید که در واقع بین نام این دو ستون، از ویرگول استفاده شده است:

و لیست به شکل زیر کوتاه و ساده می‌شود:

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

می‌توانید پردازش‌ها را به ترتیب اطلاعاتشان مرتب کنید. برای این موضوع از آپشن –sort استفاده کنید و پس از آن برای مرتب‌سازی از زیاد به کم، از خط فاصله و سپس نام ستون موردنظر را تایپ کنید. به عنوان مثال برای مرتب‌سازی بر حسب درصد استفاده از پردازنده، از –sort -pcpu استفاده کنید:

همان‌طور که می‌بینید استفاده از موجب شده که پردازش‌های سنگین‌تر در ابتدای لیست قرار بگیرند:

اگر بخواهید تنها چند پردازش صدر لیست که به عنوان مثال بیشتر از پردازنده استفاده می‌کنند را مشاهده کنید، می‌توانید دستور ps را با دستور head ترکیب کنید. به عنوان مثال با اجرای فرمان زیر، ۱۰ پردازشی که بیشتری درصد استفاده از پردازنده را به خود اختصاص داده‌اند، لیست می‌شوند:

و خروجی یک لیست کوتاه و ساده خواهد بود:

ستون مفید دیگر در لیست پردازش‌ها، ستون pmem یا Percent of Memory به معنی درصد استفاده از حافظه است. زمانی که سیستم لینوکسی کند شده است، ممکن است با کمبود رم یا پردازنده مواجه باشید و لذا این ستون نیز بسیار مفید و کاربردی است. با اجرا کردن فرمان زیر، ۱۰ پردازش که بیشتر از پردازنده استفاده کرده‌اند و در درجه‌ی بعدی بر حسب کمترین درصد استفاده از حافظه مرتب شده‌اند، ذکر می‌شود:

و خروجی دستور فوق که در آن ترتیب بر اساس درصد استفاده از پردازنده و سپس کمترین استفاده از رم است:

برای شناسایی ساده‌تر پردازش‌ها در لینوکس، بهتر است همواره ستون شناسه‌ی پردازش را نیز چک کنید. لذا با اضافه کردن یک , و نام ستون شناسه که pid است، یک ستون دیگر به لیست اضافه می‌کنیم:

اکنون شناسایی پردازش‌ها ساده‌تر است:

برای بستن پردازش‌ها به صورت تکی یا گروهی، دستورات مختلف و جالبی وجود دارد که قبلاً در مقاله‌ای به صورت کامل بررسی کردیم:

آموزش بستن اجباری پردازش‌های در لینوکس با kill و pkill و killall