سیستم عامللینوکسمک (Mac Os)

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

راهنمای نحوه استفاده دستورات Kill - PKill و Killall

آیا به دنبال روشی برای آموزش بستن پروسس ها در لینوکس و مک می‌گردید؟ پس خواندن این مقاله را ادامه دهید.

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

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

پروسس – Process چیست؟

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

می توانید فرآیندها را به دو گروه تقسیم کنید:

  1. فرآیندهای پیش زمینه: فرآیندهایی هستند که توسط کاربر شروع یا راه اندازی شده اند. آنها ممکن است در یک پنجره ترمینال باشند یا ممکن است یک برنامه گرافیکی باشند.
  2. فرآیندهای پس زمینه: همه فرآیندهایی هستند که به طور خودکار شروع می شوند و هیچ گونه تعاملی با کاربران ندارند. آنها نه انتظار ورودی از کاربران دارند و نه نتایج یا خروجی را به آنها ارائه می دهند. فرآیندهای پس زمینه چیزهایی مانند سرویس ها و دیمون ها هستند.

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

هنگامی که پردازش ها بد رفتار می کنند یا بد کار می کنند، می توانند مصرف CPU را افزایش دهند، RAM شما را مصرف کنند یا وارد یک حلقه محاسباتی فشرده شوند و پاسخگو نباشند. برنامه های گرافیکی می توانند از پاسخ دادن به کلیک های ماوس خودداری کنند. برنامه های ترمینال ممکن است هرگز شما را به خط فرمان بازنگردانند و …

Kill کردن یک فرآیند چه کاری انجام می‌دهد؟

“کشتن” یک فرآیند فقط به معنای “اجبار کردن پروسس به بسته شدن” است. این ممکن است در صورتی ضروری باشد که پروسس از پاسخ دادن امتناع کند.

لینوکس دستورهای kill، pkill و killall را ارائه می دهد تا به شما این امکان را می دهد که این کار را انجام دهید. این دستورات را می توان با هر نوع پردازش، گرافیکی یا خط فرمان، پیش زمینه یا پس زمینه استفاده کرد.

آموزش استفاده از دستور kill در لینوکس و مک

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

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

برای جستجوی ps در تمام فرآیندها از گزینه -e (همه فرآیندها) استفاده کنید. برای اجرای دستور Enter را فشار دهید.

ps -e | less

این به شما یک لیست فرآیندی می دهد که شبیه تصویر زیر است. شما می توانید با استفاده از کلید / به جلو و با استفاده از ? کلید به عقب بیایید.

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

برای ورود به فرآیندی که به آن علاقه دارید، خروجی را از ps به grep وارد کنید و نام – یا بخشی از نام – فرآیند را مشخص کنید.

ps -e | grep shutter

هنگامی که PID فرآیندی را که می خواهید خاتمه دهید پیدا کردید، آن را به عنوان پارامتر به دستور kill ارسال کنید. به عنوان مثال برای پایان دادن به فرآیند شاتر مشخص شده توسط دستور قبلی، از این دستور استفاده کنید:

kill 2099

دستور kill یک قاتل خاموش است زیرا در صورت موفقیت آمیز بودن دستور، هیچ بازخوردی به شما نمی دهد.

همچنین برای از بستن پروسس ها در macOS با استفاده از دستور Kill دقیقاً به همین صورت عمل می کند.

آموزش استفاده از دستور pkill در لینوکس و مک

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

دستور pkill به شما این امکان را می‌دهد که یک فرآیند – یا فرآیندها – را با نام از بین ببرید. شما نیازی به شناسایی پروسس با PID ندارید. برای استفاده از pkill یک عبارت جستجو ارائه می کنید که pkill از آن برای بررسی لیست فرآیندهای در حال اجرا استفاده می کند.

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

شما با این کار می توانید مطمئن شوید که عبارت جستجو را به درستی فکر کرده اید قبل از اینکه آن را به pkill ارسال کنید. هم pkill و هم pgrep با عبارت جستجو به یک شکل رفتار می کنند.

فرض کنید فرآیندی با “subq” در نام آن وجود دارد. ما از ps -u dave | استفاده خواهیم کرد. می توانید ببینید که “subq” با آن فرآیند و آن فرآیند به تنهایی مطابقت دارد. این فقط برای این بود که بتوانید نام کامل فرآیند را ببینید.

ps -u dave | grep subq

پیدا کردن ایدی پروسس از نام آن

بیایید فرض کنیم کاربر ما این کار را نکرده است. تنها چیزی که آنها می دانند این است که نام فرآیند حاوی زیر رشته “subq” است. آنها از pgrep برای بررسی اینکه فقط یک مورد مطابق با عبارت جستجو وجود دارد استفاده می کنند. سپس از آن عبارت جستجو با pkill استفاده می کنند.

pgrep subq
pkill subq

اموزش دستور pkill

شما می توانید از pkill برای از بین بردن چندین فرآیند به طور همزمان استفاده کنید. در اینجا کاربر pgrep را اجرا می کند تا بررسی کند که کروم چند فرآیند راه اندازی کرده است. آنها از pkill برای بستن همه آنها استفاده می کنند. سپس با pgrep بررسی می کنند که همه آنها حذف شده اند.

pgrep chrome
pkill chrome
pgrep chrome

دستور pgrep

اگر چندین پردازش با یک نام در حال اجرا هستند، اما نمی‌خواهید همه آنها را ببندید، می‌توانید از pgrep با گزینه -f (خط فرمان) استفاده کنید تا تشخیص دهید کدام فرآیند کدام است. یک مثال ساده می تواند دو فرآیند پینگ باشد. شما می خواهید یکی از آنها را ببندید اما دیگری را نه. می توانید از خطوط فرمان آنها برای تمایز بین آنها استفاده کنید.

به استفاده از علامت نقل قول برای بسته بندی پارامتر خط فرمان توجه کنید.

pgrep -f "ping 192.168.4.22"
pkill -f "ping 192.168.4.22"

آموزش استفاده از دستور killall در لینوکس و مک

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

هشدار: در سیستم عامل های Solaris و OpenIndiana دستور killall تمام فرآیندهای متعلق به شما را از بین می برد. اگر root هستند یا sudo killall را صادر کرده اید، با اینکار کامپیوتر خود را مجددا راه اندازی می کنید!

دستور killall به روشی مشابه دستور pkill عمل می کند اما با یک تفاوت خاص. به جای ارسال عبارت جستجو به دستور، باید نام دقیق فرآیند را ارائه دهید.

شما نمی توانید یک تطابق جزئی با نام فرآیند ارائه دهید. شما باید کل نام فرآیند را ارائه دهید، همانطور که نشان داده شده است:

killall shutt
killall shutter

آموزش استفاده از دستور killall در لینوکس و مک

گزینه -y به شما اجازه می دهد تا فرآیندهایی را که کمتر از یک دوره مشخص در حال اجرا بوده اند را از بین ببرید. دوره به اعداد و به دنبال آن یکی از این واحدها آورده شده است:

  • s (ثانیه)
  • m (دقیقه)
  • h (ساعت)
  • d (روز)
  • w (هفته)
  • M (ماه)
  • y (سال)

برای از بین بردن فرآیندی به نام ana که به‌تازگی راه‌اندازی شده است و اجرا کردن نمونه‌های قدیمی‌تر ana، می‌توانید از پارامترهای زیر با killall استفاده کنید، اگر در عرض دو دقیقه واکنش نشان داده باشید:

killall -y 2m ana

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

killall -o 1d sshd

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

این دستورات به شما این امکان را می دهد که فرآیندهای اشتباه را با دقت و ایمنی به درستی شناسایی و خاتمه دهید. با این حال پایان دادن به فرآیندی که نباید انجام دهید کاملاً ممکن است.

همیشه محتاط باشید. اول، مطمئن شوید که فرآیندی که می خواهید kill کنید، واقعاً همان چیزی است که می خواهید. دوم، دوباره بررسی کنید – مراقب باشید و مطمئن شوید که فرآیند هدفمند همان فرآیندی است که می‌خواهید به پایان برسانید. پس از اینکه راضی شدید، روند را با استفاده از یکی از سه روش بالا خاتمه دهید.

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

شاید این مقاله نیز برای شما کاربردی باشد : ۱۳ نکته و ترفند ضروری در خط فرمان لینوکس

امیدواریم این ترفند کاربردی از مجموعه آموزش های سیستم عامل لینوکس به جهت آموزش بستن پروسس ها در لینوکس و مک برای شما عزیزان مفید واقع شده باشد؛ اگر شما نیز روش راحت تری برای استفاده دستورات Kill – PKill و Killall می شناسید میتوانید آن را در بخش کامنت ها مطرح کنید تا با نام شما این مقاله بروزرسانی گردد.

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]

هاست وردپرس هاست وردپرس

سعید زارعین

سعید هستم 27 ساله، یک عدد تولید محتوا(ئر) خلاق :)))

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا