Како убити процесе са Линук терминала

Убијање процеса је понекад једини начин да га се решите. Упркос грубом називу, „убијање“ процеса само значи „присилити га да прекине“. Ево како то учинити из командне линије за Линук или мацОС.

Шта је процес?

Покренути програми као што је ваш веб прегледач, позадински процеси повезани са вашим десктоп окружењем и Линук системске услуге су процеси.

Можете групирати процесе у две групе:

Процеси у првом плану су они које је покренуо или покренуо корисник. Они могу бити у прозору терминала или могу бити графичка апликација.
Позадински процеси су сви процеси који се покрећу аутоматски и немају никакву интеракцију са корисницима. Они не очекују унос од корисника нити им презентују резултате или излаз. Позадински процеси су ствари попут услуга и демона.

Ако су процеси у првом плану предњи део позоришног особља и глумаца, процеси у позадини су тим „иза кулиса“ иза сцене.

Када се процеси лоше понашају или не функционишу, могу потрошити превише ЦПУ времена, потрошити вашу РАМ меморију или ући у уску рачунарску петљу и престати реаговати. Графичке апликације могу одбити да реагују на кликове мишем. Терминалне апликације вас можда никада неће вратити у командну линију.

Хумани одговор

„Убити“ процес само значи „присилити процес да прекине“. Ово може бити неопходно ако процес одбија да одговори.

Линук обезбеђује команде килл, пкилл и киллалл које вам омогућавају да урадите управо то. Ове команде се могу користити са било којом врстом процеса, графичком или командном линијом, предњим планом или позадином.

  Како контролисати судо приступ на Линук-у

Команда за убијање

Да бисте користили килл, морате знати ИД процеса (ПИД) процеса који желите да прекинете. Команда пс се може користити за проналажење ПИД-а процеса.

Да би пс претраживао све процесе, користите опцију -е (сви процеси). Препоручљиво је провођење излаза кроз мање, биће тога доста. Откуцајте пс, размак, -е, размак, | (словни знак), други размак, а затим укуцајте мање. Притисните Ентер да извршите команду.

ps -e | less

Ово ће вам дати списак процеса који изгледа слично снимку екрана испод. Можете да претражујете унапред у мање користећи тастер / и можете да претражујете уназад користећи ? кључ.

Да бисте ушли у процес који вас занима, проведите излаз из пс-а кроз греп и наведите име—или део имена—процеса.

ps -e | grep shutter

Када пронађете ПИД процеса који желите да прекинете, проследите га команди килл као параметар. Да бисте прекинули процес затварача идентификован претходном командом, користите ову команду:

kill 2099

Команда убијања је тихи убица—не даје вам никакву повратну информацију ако је била успешна.

Команда пкилл

Команда пкилл вам омогућава да убијете процес—или процесе—по имену. Не морате да идентификујете процес помоћу ПИД-а. Да бисте користили пкилл, наведите термин за претрагу који пкилл користи за проверу листе покренутих процеса. Процеси упаривања су прекинути. Дакле, морате бити сигурни да сте тачно написали тај термин за претрагу.

Као заштитну мрежу, можете користити команду пгреп пре него што употребите команду пкилл. Команда пгреп такође прихвата термин за претрагу. Он ће навести ПИД сваког процеса који одговара термину за претрагу. Ово је безбедно јер пгреп неће издати никакав сигнал за укидање процесима, а ако погрешно унесете термин за претрагу, нећете грешком убити други процес. Можете се уверити да је термин за претрагу правилно осмишљен пре него што га проследите пкилл-у. И пкилл и пгреп третирају термин за претрагу на исти начин. Њихов третман је толико сличан да они делите исту ман страницу.

  3 најбоље интернет радио апликације за Линук

Претпоставимо да постоји процес са „субк“ у свом имену. Користићемо пс -у даве | греп команду да завирите иза завесе. Можете видети да ће „субк“ одговарати том процесу и самом том процесу. То је било само да бисте могли да видите пуно име процеса.

ps -u dave | grep subq

Претпоставимо да наш корисник то није урадио; све што знају је да име процеса садржи подниз „субк“. Они користе пгреп да би проверили да ли постоји само једно подударање са термином за претрагу. Затим користе тај термин за претрагу са пкилл.

pgrep subq
pkill subq

Можете користити пкилл да убијете неколико процеса одједном. Овде корисник покреће пгреп да провери колико је процеса Цхроме покренуо. Они користе пкилл да их све убију. Затим проверавају помоћу пгреп-а да ли су сви уклоњени.

pgrep chrome
pkill chrome
pgrep chrome

Ако се покреће неколико процеса са истим именом, али не желите да их све убијете, можете користити пгреп са опцијом -ф (командна линија) да бисте идентификовали који је процес који. Једноставан пример би била два пинг процеса. Желите да убијете једног од њих, али не и другог. Можете користити њихове командне линије да бисте их разликовали. Обратите пажњу на употребу наводника за умотавање параметра командне линије.

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

Команда киллалл

Упозорење: У оперативним системима Соларис и ОпенИндиана команда киллалл ће убити све процесе који вам припадају. Ако сте роот или ако сте издали судо киллалл, поново ћете покренути рачунар! Током истраживања за овај чланак, ово понашање је потврђено најновијом верзијом ОпенИндиана Хипстер 2018.10.

  Како променити лозинке налога на Линук-у

Команда убити делује на сличан начин на команду пкилл, али са специфичном разликом. Уместо да проследите термин за претрагу команди, морате да наведете тачно име процеса.

Не можете обезбедити делимично подударање са именом процеса; морате да наведете цело име процеса, као што је приказано:

killall shutt
killall shutter

Опција -и (млађи од) вам омогућава да убијете процесе који су били покренути краће од одређеног периода. Период је дат у бројевима иза којих следи једна од ових јединица:

с (секунде)
м (минути)
х (сати)
д (дана)
в (недеље)
М (месеци, напомена, велико „М“)
и (године)

Да бисте убили процес који се зове ана који је управо покренут и оставили све старије инстанце ана да ради, можете користити следеће параметре са киллалл, ако сте реаговали у року од два минута:

killall -y 2m ana

Опција -о (старије од) вам омогућава да убијете процесе који су били покренути дуже од одређеног периода. Ова команда ће поништити све ссх везе које су покренуте дуже од једног дана:

killall -o 1d sshd

Не будите превише срећни са окидачем

Ове команде ће вам омогућити да тачно и безбедно идентификујете и окончате погрешне процесе.

Увек будите опрезни. Прво, уверите се да је процес који намеравате да убијете заиста онај који желите. Друго, двапут проверите – будите пажљиви и уверите се да је циљани процес онај који желите да завршите. Наставите са прекидом процеса када будете задовољни.