لینوکس, مدیریت سرور لینوکس

آموزش کامل دستور Kill در لینوکس – خاتمه دادن به Process ها با دستور Kill

آموزش کامل دستور Kill در لینوکس

دستور Kill برای خاتمه دادن به Process ها به صورت دستی در لینوکس کاربرد دارد، در این مقاله نحوه کار با دستور Kill در لینوکس را به شما عزیزان آموزش خواهیم داد، همراه داتیس نتورک باشید.

آموزش کامل دستور Kill در لینوکس

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

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

در این صورت لازم است تا process آن برنامه یا ابزار را از سیستم متوقف کنید.

دستور kill در لینوکس (واقع در /bin/kill) ، یک فرمان کاربردی است که برای خاتمه دادن به فرآیند ها به صورت دستی استفاده می شود.

فرمان kill یک سیگنال را به process ای که روند را خاتمه می دهد می فرستد.

آموزش فرمان kill در Linux

kill یک شل است که در بیشتر شل های مشتق از بورن مانند Bash و Zsh ساخته شده است.

رفتار فرمان بین پوسته ها و عملکرد مستقل /bin/kill کمی متفاوت است.

از فرمان type برای نمایش همه مکانها در سیستم خود که حاوی kill است استفاده کنید:

type -a kill

خروجی:

kill is a shell builtin
kill is /bin/kill

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

اگر می خواهید از باینری استفاده کنید ، مسیر کامل پرونده را در /bin/kill تایپ کنید.

در این مقاله از ساخت داخلی Bash استفاده خواهیم کرد.

نحو فرمان kill به شکل زیر است:

kill [ OPTIONS ] [ PID ] ..

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

هنگامی که سیگنال مشخص نشده است ، پیش فرض -15 (-TERM) است.

متداول ترین سیگنال ها عبارتند از:

  • 1 ( HUP ) – یک فرآیند را بارگیری مجدد کنید.
  • 9 ( KILL ) – یک روند را kill کنید.
  • 15 ( TERM ) – یک روند را متوقف کنید.

برای به دست آوردن لیستی از تمام سیگنالهای موجود ، با گزینه -l از این فرمان فراخوانی کنید:

kill -l

سیگنال ها می توانند به سه روش مختلف مشخص شوند:

  • با استفاده از شماره (به عنوان مثال ، -1 یا -s 1 ).
  • با استفاده از پیشوند “SIG” (به عنوان مثال ، -SIGHUP یا -SIGHUP ).
  • بدون پیشوند “SIG” (به عنوان مثال ، -HUP یا -s HUP ).

دستورات زیر معادل یکدیگر است:

kill -1 PID_NUMBER
kill -SIGHUP PID_NUMBER
kill -HUP PID_NUMBER

PID های ارائه شده به دستور kill می تواند یکی از موارد زیر باشد:

  • اگر PID بیشتر از صفر باشد ، سیگنال با شناسه برابر با PID به فرایند ارسال می شود.
  • اگر PID برابر با صفر باشد ، سیگنال به کلیه فرآیندهای موجود در گروه فرآیند ارسال می شود. به عبارت دیگر ، سیگنال به کلیه فرآیندهای متعلق به GID شل که از فرمان kill استفاده کرده اند ، ارسال می شود. برای مشاهده شناسه های گروه پردازش (GID) از دستور ps -efj استفاده کنید.
  • اگر PID برابر با -1 ، سیگنال به کلیه فرایندها با همان UID ارسال می شود که کاربر از آن دستور استفاده می کند. اگر کاربر دسترسی root داشته باشد ، سیگنال به کلیه فرایندها به جز خود پردازش kill ارسال می شود.
  • اگر PID کمتر از -1 ، سیگنال به کلیه فرآیندهای موجود در گروه فرایند eq با GID برابر با مقدار مطلق PID ارسال می شود.

کاربران عادی می توانند سیگنالهایی را برای پردازش های خود ارسال کنند.

اما نه آنهایی که به کاربران دیگر تعلق دارند.

در حالی که کاربر root می تواند سیگنالهایی را به سایر فرآیندهای کاربران ارسال کند.

خاتمه پروسس ها با استفاده از دستور kill

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

شما می توانید این کار را با استفاده از دستورات مختلف مانند top ، ps ، pidof و pgrep انجام دهید.

بیایید بگوییم مرورگر فایرفاکس پاسخگو نبوده است ، و شما باید فرایند Firefox را kill کنید.

برای یافتن PID های مرورگر از دستور pidof استفاده کنید:

pidof firefox

در این دستور شناسه کلیه فرآیندهای Firefox چاپ می شود:

6263 6199 6142 6076

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

kill -9 2551 2514 1963 1856 1771

به جای جستجوی PID ها و سپس خاتمه مراحل ، می توانید دستورات فوق را در یک دستور ترکیب کنید:

kill -9 $(pidof firefox)

پردازش مجدد با استفاده از دستور kill

مورد دیگر استفاده رایج برای kill ارسال سیگنال HUP که به فرایندها می گوید تنظیمات آن را بارگیری مجدد کنید.

به عنوان مثال:

برای بارگیری مجدد Nginx ، باید سیگنالی را به فرایند master ارسال کنید.

شناسه پردازش فرآیند Nginx master را می توان در پرونده nginx.pid یافت ، که به طور معمول در فهرست /var/run است.

برای پیدا کردن master PID از دستور cat استفاده کنید:

cat /var/run/nginx.pid

خروجی:

30251

پس از پیدا کردن master PID ، تنظیمات Nginx را با تایپ دوباره بارگیری کنید:

sudo kill -1 30251

دستور فوق باید به صورت root یا کاربر دارای امتیازات sudo اجرا شود.

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

داتیس نتورک را در شبکه های اجتماعی دنبال کنید.

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

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