لینوکس یک سیستم عامل عالی و پیشرفته است اما کامل نیست. مدتی ممکن است برخی از برنامه ها به صورت نامنظم رفتار کنند و واکنش نشان ندهند یا بسیاری از منابع سیستم را مصرف کنند. برنامه های بدون پاسخ را نمی توان مجدداً راه اندازی کرد. زیرا فرایند اصلی برنامه هرگز کاملاً خاموش نمی شود. تنها راه حل این است که یا سیستم را مجدداً راه اندازی کنید یا برنامه را غیرفعال کنید. چندین نرم افزار وجود دارد که به شما امکان می دهد پروسس های غیرفعال را با استفاده از دستور kill ، خاتمه دهید. در این آموزش با ما همراه باشید تا شما عزیزان را با دستور Kill در لینوکس آشنا کنیم.
kill یک shell است که در بیشتر shell های Bourne-derived مانند Bash و Zsh ساخته شده است. رفتار دستور kill بین shell ها و اجزای مستقل /bin /kill کمی متفاوت است. از دستور type برای نمایش همه مکانهای سیستم خود که حاوی kill است ، استفاده کنید:
type -a kill
kill is a shell builtin kill is /bin/kill
خروجی بالا نشان می دهد که shell ساخته شده در اولویت اجرای مستقل است و هر زمان که kill را تایپ کنید از آن استفاده می شود. اگر می خواهید از باینری استفاده کنید ، مسیر کامل فایل را در /bin /kill را تایپ کنید. در این مقاله ، ما از Bash builtin استفاده خواهیم کرد. نحو دستور kill به شکل زیر است:
kill [OPTIONS] [PID]...
دستور kill یک سیگنال را به فرآیندهای مشخص یا گروه های پردازشی ارسال می کند و باعث می شود آنها مطابق سیگنال عمل کنند. هنگامی که سیگنال مشخص نشده باشد ، به طور پیش فرض روی -۱۵ (-TERM) قرار می گیرد.رایج ترین سیگنالها عبارتند از:
برای دریافت لیستی از همه سیگنال های موجود ،با گزینه -l از این دستور فراخوانی کنید:
kill -l
سیگنال ها را می توان به سه روش مختلف تعیین کرد:
۱_ با استفاده از شماره (به عنوان مثال ، -۱ یا -s 1).
۲_ با استفاده از پیشوند “SIG” (به عنوان مثال ، -SIGHUP یا -s SIGHUP).
۳_ بدون پیشوند “SIG” (به عنوان مثال ، -HUP یا -s HUP).
دستورات زیر معادل یکدیگر هستند:
kill -1 PID_NUMBER
kill -SIGHUP PID_NUMBER
kill -HUP PID_NUMBER
PID های ارائه شده به دستورkill می توانند یکی از موارد زیر باشند:
کاربران عادی می توانند سیگنالهایی را برای پردازش های خود ارسال کنند. اما نه آنهایی که به کاربران دیگر تعلق دارند. در حالی که کاربر root می تواند سیگنالهایی را به سایر فرآیندهای کاربران ارسال کند. برای خاتمه یا از بین بردن یک فرایند با دستور kill ، ابتدا باید شماره پردازش (PID) را پیدا کنید. می توانید این کار را با استفاده از دستورات مختلف مانند top، ps، pidof و pgrep انجام دهید. فرض کنید مرورگر فایرفاکس پاسخگو نیست و شما باید فرآیند فایرفاکس را از بین ببرید. برای پیدا کردن PID های مرورگر از دستور pidof استفاده کنید:
pidof firefox
این دستور شناسه تمام فرایندهای Firefox را نمایش می دهد:
۶۲۶۳ ۶۱۹۹ ۶۱۴۲ ۶۰۷۶
هنگامی که اعداد فرآیندها را می شناسید ، می توانید با ارسال سیگنال TERM همه آنها را از بین ببرید:
kill -9 6263 6199 6142 6076
به جای جستجوی PID ها و سپس از بین بردن فرآیندها ، می توانید دستورات فوق را در یک دستور ترکیب کنید:
kill -9 $(pidof firefox)
یکی دیگر از موارد رایج برای kill ، ارسال سیگنال HUP است که به فرایندها می گوید تنظیمات آن را مجددا آپلود کنند. به عنوان مثال ، برای پردازش مجدد Nginx ، باید یک سیگنال به فرآیند master ارسال کنید. شناسه فرآیند Nginx master را می توانید در فایل nginx.pid ، که معمولاً در دایرکتوری /var /run قرار دارد ، پیدا کنید. برای پیدا کردن master PID از دستور cat استفاده کنید:
cat /var/run/nginx.pid
۳۰۲۵۱
هنگامی که master PID را پیدا کردید ، با تایپ کردن تنظیمات Nginx را دانلود کنید:
sudo kill -1 30251
دستور بالا باید به عنوان root یا کاربر با امتیازات sudo اجرا شود.
دستور kill برای ارسال سیگنال به پردازش ها استفاده می شود. بیشترین استفاده از سیگنال SIGKILL یا -۹ است که فرآیندهای داده شده را خاتمه می دهد.
امیدواریم مطالب مورد پسند بوده و از آن بهره لازم را برده باشید. خوشحال میشویم نظرات و سوالات خود را در قسمت دیدگاه به اشتراک بگذارید و ما را در شتابان هاست همراهی کنید.😊