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

اغلب اوقات شما می خواهید یک برنامه به وسیله ابزار خود به پایان برسد، یا اگر یک برنامه گرافیکی است، با استفاده از گزینه منو مناسب یا با استفاده از صلیب در گوشه.

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

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

چگونه از فرمان killall استفاده کنید

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

به عنوان مثال، یک برنامه کوچک مانند یک بیننده تصویر را باز کنید. حالا یک نسخه دیگر از یک نمایشگر تصویر مشابه باز کنید. برای مثال من Xviewer را انتخاب کرده ام که یک کلون Eye Gnome است .

حالا ترمینال را باز کرده و دستور زیر را تایپ کنید:

همه را بکش

به عنوان مثال برای کشتن تمام موارد Xviewer نوع زیر را داشته باشید:

killall xviewer

هر دو نمونه از برنامه هایی که برای کشتن انتخاب کرده اید، اکنون بسته می شوند.

کشتن فرآیند دقیق

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

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

killall-e

نادیده گرفتن مورد در هنگام کشتن برنامه ها

برای اطمینان از اینکه دستور killall نادیده گرفتن مورد نام برنامه ای که ارائه می دهید، از دستور زیر استفاده می کند:

killall من
killall - negore case

کشتن همه برنامه ها در همان گروه

هنگامی که شما یک فرمان را مانند یک زیر اجرا می کنید، دو فرآیند ایجاد می کند:

ps -ef | کمتر

یک فرمان برای قسمت ps -ef است که تمام فرایندهای در حال اجرا در سیستم شما را نشان می دهد و خروجی به دستور کمتری متصل می شود .

هر دو برنامه متعلق به یک گروه است که bash است.

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

killall-g

برای مثال برای کشتن تمام دستورات اجرا شده در پوسته bash، زیر را اجرا کنید:

killall-g bash

در ضمن لیستی از تمام گروه های در حال اجرا دستور زیر را اجرا می کنند:

ps -g

قبل از کشتن برنامه ها، تأیید را دریافت کنید

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

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

killall-i

کشتن فرآیندهای که برای مدت زمان مشخصی اجرا شده است

تصور کنید که شما یک برنامه را اجرا کرده اید و طول می کشد تا شما انتظار داشته باشید.

شما می توانید فرمان را به روش زیر بکشید:

killall -o h4

h در دستور بالا ساعت هاست.

شما همچنین می توانید هر یک از موارد زیر را مشخص کنید:

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

killall -y h4

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

فراموش نکنید که فرآیند کشته نشود

به طور پیش فرض اگر شما سعی می کنید و یک برنامه ای را اجرا نکنید، خطا زیر را دریافت خواهید کرد:

programname: هیچ روند یافت نشد

اگر نمیخواهید بگویید اگر روند پیدا نشد، از دستور زیر استفاده کنید:

killall -q

با استفاده از عبارات منظم

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

برای استفاده از عبارات منظم، از دستور زیر استفاده کنید:

killall -r

کشتن برنامه ها برای یک کاربر مشخص

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

killall -u

اگر می خواهید همه پروسه ها را برای یک کاربر خاص بکشید، می توانید نام برنامه را حذف کنید.

صبر کن برای killall برای پایان دادن به

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

برای انجام این کار دستور زیر را اجرا کنید:

killall -w

اگر برنامه هرگز نمی میرد و سپس killall نیز ادامه خواهد داد در زندگی می کنند.

سیگنال های سیگنال های سیگنال

به طور پیش فرض دستور killall سیگنال SIGTERM را به برنامه ها می فرستد تا آنها را خاموش کند و این پاک ترین روش برای کشتن برنامه ها است.

با این حال، سیگنال های دیگری که می توانید با استفاده از دستور killall ارسال کنید، می توانید آنها را با استفاده از دستور زیر لیست کنید:

killall -l

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

این لیست بسیار طولانی است برای خواندن در مورد آنچه که این سیگنالها بدان می رسند دستور زیر را اجرا کنید:

مرد 7 سیگنال

به طور کلی شما باید از گزینه SIGTERM به طور پیش فرض استفاده کنید، اما اگر برنامه امتناع می کند، می توانید از SIGKILL استفاده کنید که برنامه را به هر نحوی از بین می برد.

راه های دیگر برای کشتن یک برنامه

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

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

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

برای اجرای فرمان kill باید نام فرایند فرآیند مورد نظر خود را بشناسید. برای این شما می توانید از دستور ps استفاده کنید.

به عنوان مثال برای پیدا کردن یک نسخه در حال اجرا از فایرفاکس شما می توانید دستور زیر را اجرا کنید:

ps -ef | grep فایرفاکس

در پایان یک خط داده را با دستور / usr / lib / firefox / firefox خواهید دید. در ابتدای خط شما شناسه کاربر و شماره خود را بعد از شناسه کاربری شناسه پردازش خواهید دید.

با استفاده از شناسه فرآیند شما می توانید فایرفاکس را با اجرای دستور زیر از بین ببرید:

kill -9

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

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

xkill

مکان نما در حال حاضر به یک متقابل سفید سفید تبدیل می شود. با کلیک بر روی دکمه سمت چپ ماوس بر روی پنجره که میخواهید بکشید، مکان نما را حرکت دهید. این برنامه بلافاصله خروج خواهد شد.

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

همه چیزهایی که باید انجام دهید برای کشتن یک فرایند است، کلید "k" را فشار دهید و وارد ID روند درخواستی که می خواهید کشتن کنید.

پیش از این در این قسمت فرمان kill را فراخوانی کردید و شما نیاز به پیدا کردن فرآیند با استفاده از دستور ps و سپس فرآیند را با استفاده از دستور kill حذف کردید.

این به هیچ وجه ساده ترین گزینه نیست.

برای یک چیز، دستور ps به مقدار زیادی اطلاعاتی را که نیازی ندارید باز می کند. همه شما می خواستید شناسه فرآیند بود. با اجرای دستور زیر میتوانید ID سادهتر را دریافت کنید:

pgrep فایرفاکس

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

کشتن

(جایگزین با شناسه پردازش واقعی توسط pgrep).

با این حال، سادهتر است که فقط نام برنامه را به pkill بفرستید :

فایرفاکس pkill

در نهایت شما می توانید از یک ابزار گرافیکی مانند یک ارائه شده با اوبونتو به نام «سیستم مانیتور» استفاده کنید. برای اجرای "سیستم مانیتور" کلید سوپر (کلید ویندوز در اکثر رایانه ها) را فشار دهید و "sysmon" را در نوار جستجو تایپ کنید. وقتی آیکون مانیتور سیستم ظاهر می شود، بر روی آن کلیک کنید.

مانیتور سیستم لیستی از فرآیندها را نشان می دهد. برای پایان دادن به یک برنامه در یک روش پاک، آن را انتخاب کنید و کلید پایان را در پایین صفحه فشار دهید (یا CTRL و E را فشار دهید). اگر این کار نتواند کلیک راست کنید و گزینه "Kill" را انتخاب کنید یا CTRL و K را در فرآیند مورد نظر خود بکشید.