Команди A-Z

Как да убиете или прекратите процес на Linux Най-доброто ръководство

Как да убиете или прекратите процес на Linux Най-доброто ръководство

Многопроцесорните операционни системи като Linux и BSD използват няколко метода за максимално използване на процесора. Процесът е просто програма в изпълнение. Тъй като в даден момент ще има повече от един Linux процес, управлението на процесите в Linux е изключително важно. Потребителите често се сблъскват с проблеми като ограничаване на ресурсите на процесора, когато изпълняват твърде много програми. Ситуации като тази се появяват, когато процесорът не успее да се справи с нарастващия брой процеси. Въпреки че това не зависи изцяло от мощността на вашия процесор, справянето с обесени или зомби процеси може да бъде доста разочароващо. За да ви помогнем да смекчите подобни събития, ние очертаваме някои стандартни начини за убиване на тези процеси.

Овладейте управлението на неотзивчивите процеси в Linux


Ще научите няколко начина да прекратите процес на Linux, който изобщо не реагира. Ако идвате от Windows, може да сте запознати с Ctrl + Alt + Delete. По същия начин потребителите на Mac имат метода Command + Option + Escape за убиване на замразени процеси. Linux е много по-гъвкав от своите колеги и предлага повече от един метод за справяне с мъртви / неподходящи процеси.

Различни методи за убиване на мъртъв Linux процес


Ще очертаем основно два метода за убиване на зомби процеси. Ще използваме терминала Linux за първия метод. За това първо ще трябва да идентифицираме идентификатора на процеса. След като бъде получено успешно, можем да използваме този PID, за да убием програмата, като изпратим конкретни сигнали към този PID.

Също така ще научите как да изпълнявате такива задачи за убиване на Linux от графичния потребителски интерфейс или X прозореца. Ще използваме „Системен монитор“ приложение, налично в Ubuntu за това. Въпреки че това е приложение на GNOME, подобни инструменти са налични и за други среди за настолни компютри на Linux.

Прекратете процес, който не реагира, от командния ред


Има няколко инструмента за прекратяване на неподходящ или обесен процес от командния ред, включително убий, pkill, и убийство. Тези команди работят чрез изпращане на специфични сигнали към тези неотзивчиви процеси. Ще ви трябва идентификатор на процеса или PID информация, така че да можете да им изпратите необходимия краен сигнал.

PID или идентификаторът на процеса е уникален номер, който идентифицира процес. Те се създават от ядрото на Linux по време на изпълнение и планиращият процес контролира техните CPU дейности. Така че, всеки път, когато извикате приложение, ядрото първо ще създаде необходимите процеси и ще им присвои тези уникални PID стойности. Може да има множество PID, свързани с процес. Освен това всеки процес има един родителски процес с уникален PPID (идентификатор на родителски процес).

Така че, ако успеете да разберете този PPID, тогава ще можете да изпратите сигнал за убиване, използвайки програми, създадени за тази цел. По-долу ще научите как да проверите работещите процеси в Linux и да идентифицирате техния PPID от терминала.

Разберете информацията за PPID


Можете да разберете PPID на процес, като използвате няколко команди за управление на процеси в Linux, като например пидоф, pstree, и pgrep. Нека ги разгледаме един по един и да видим как да получим PID на процес на Linux.

Метод 1: Използване на командата ps


Командата ps в Linux показва всички работещи процеси заедно с друга свързана с процеса информация, като PID в терминала. Можем да използваме тази команда, за да изброим всички процеси и след това да филтрираме определен процес с помощта на Linux grep команди. Той трябва да ни покаже информация за процеса, която ни интересува.

$ nano> / dev / null &
$ ps aux | grep "нано"

Първо, извикахме текстов редактор на Linux във фонов режим. След това използвахме командата ps заедно с командата grep, за да открием PPID на този редактор. Изходът може да съдържа няколко идентификационни номера на процеса, но ние се интересуваме само от първия, тъй като това е нашият PPID. Също така можем да използваме командата Linux awk, за да открием тази информация, както е показано по-долу.

$ ps aux | awk '/ nano / print $ 2'

Тази команда е по-гъвкава, тъй като потиска цялата неподходяща информация. Той ще показва само информацията за PPID, която търсим.

Метод 2: Използване на командата pstree


Командата pstree ни предоставя дървовиден изглед на всички работещи процеси. Той предоставя графичен изглед на списъка със задачи на Linux от прозореца на терминала. Можете да видите PPID, както и цялата информация за PID на процес, използвайки тази команда. Вижте примерите по-долу, за да научите как да използвате pstree за намиране на PPID на конкретен процес.

$ nano> / dev / null &
$ pstree -p | grep 'nano' $ pstree -p | awk '/ nano / print $ NF'

Първо, породихме процес във фонов режим с помощта на първата команда. След това втората команда извлича PPID на този процес с помощта на командата grep в Linux. И накрая, третата команда ни показва как да извлечем тази стойност с помощта на командата awk.

Метод 3: Използване на командата pgrep


Командата pgrep е една от най-лесните команди за управление на процеси в Linux. Той проверява списъка на всички работещи процеси и отпечатва PPID на даден процес в стандартния изход или терминала в нашия случай. Той работи, като извършва съвпадение на регулярни изрази и е изключително подходящ за писане на скриптове на черупки на Linux.

$ nano> / dev / null &
$ pgrep „нано“

Ние създадохме процеса на нано, подобно на по-ранните примери. След това получихме неговия PPID с помощта на командата pgrep. След като получим тази стойност, можем много лесно да изпълним заданието за убиване на Linux.

Метод 4: Използване на командата pidof


Командата pidof е друг прост, но полезен начин за определяне на PPID на Linux процес. Той показва както PPID, така и всички други PID, свързани с даден процес. Вижте долния преглед, за да видите как да използвате това на практика.

$ nano> / dev / null &
$ pidof nano $ pidof -s nano

Когато използвате командата pidof за проверка на работещи процеси в Linux, често ще виждате множество PID. Обикновено в такива случаи първото или последното число е PPID, в зависимост от това дали са във възходящ ред или в низходящ ред. Можете да използвате възможност на pidof да смекчи това. Той ще покаже само стойността на PPID.

Метод 5: Използване на горната команда


Най-горната команда осигурява преглед в реално време на всички работещи процеси в Unix-подобни операционни системи. Можете да използвате това, за да покажете списъка със задачи на Linux във вашия терминал и да разберете PID информацията за конкретен процес.

$ отгоре

Използвайте следните команди, за да извлечете PPID на определен процес от изхода на горната команда.

$ nano> / dev / null &
$ отгоре -n1 -b | grep 'nano' $ top -n1 -b | awk '/ nano / print $ 1'

Тъй като top осигурява изход в реално време, вместо да изхвърля статични данни към терминала, ние използвахме -n1 и опция за отпечатване на статичен изход. След това можете да извлечете информацията за PPID, като използвате командата grep или командата awk в Linux.

Убийте неотзивчивия процес на Linux


Можете да използвате всеки от горните методи за извличане на PPID на неактивния процес. След като получите това, е време да убиете процеса изобщо. Има няколко команди, които ни позволяват да направим това, като убий, pkill, и убийство. Ще видим как работят един по един в следващите раздели.

Метод 1: Използване на командата kill


Командата kill се използва широко от администраторите на Linux поради своята простота и стабилни действия. Той взема PID на процеса и сигнал. Ядрото убива / спира изпълнението на процеса въз основа на този сигнал. Можете да използвате следващата команда, за да видите всички налични сигнали към командата kill.

$ kill -l

Както можете да видите, kill предлага 64 различни сигнала. В това ръководство обаче ще обсъдим само две от тях. Това са сигнал 9 (SIGKILL) и сигнал 15 (SIGTERM). SIGTERM или сигнал 15 е безопасен метод за убиване на неотговарящ процес. SIGKILL или сигнал 9, от друга страна, сила убива процес на Linux.

$ kill -9 8631 $ kill -KILL 8631

Горните команди са еквивалентни и те ще принудят да убият процеса, който има PID 8631. Това е PPID на процеса „nano“ в моята система. Заменете това с PID на неотзивчивия процес във вашата система.

$ kill -15 8631 $ kill -TERM 8631

Горните команди също са еквивалентни и ще убият процеса грациозно. Ето защо може да отнеме известно време, преди процесът да бъде убит. Освен това може да се наложи да добавите Судо преди командата kill, ако процесът е собственост на друг потребител.

Метод 2: Използване на командата pkill


Командата pkill е една от най-универсалните команди за управление на процеси в Linux. Позволява ни да убием процес, който не реагира, въз основа на неговото име, PID, собственик и други атрибути на изпълнение. Това е идеален инструмент за стартиране на потребители или хора, които не са запознати с много стандартни команди на терминала.

$ pkill nano $ pkill 8631 $ pkill -e nano $ pkill -f nano

Можете да използвате някоя от горните команди pkill за убиване на зомби / неотговарящ процес в Linux. Използвай опция, ако искате потвърждение за заданието за убиване на Linux. Командата pkill също позволява на потребителите да изпращат специфични крайни сигнали.

Метод 3: Използване на командата killall


Командата killall позволява на потребителите да убиват неотговарящи процеси въз основа на техните имена. Той е по-лесен за използване, но може да създаде проблеми, ако не сте предпазливи. Тъй като killall прекратява процеси въз основа на имена, винаги има шанс да убиете процес случайно. Например, ако във вашата система има различни версии на nano, първият пример ще унищожи всички тях.

$ killall nano $ killall --вербоза нано $ killall --интерактивна нано $ killall --сигнал KILL nano

Първият пример показва основното използване на командата killall в Linux. Втората команда ще докладва дали заданието за убиване е успешно или не, а третата команда ще поиска от потребителя потвърждение, преди да убие процеса. По подразбиране killall използва сигнала SIGTERM за процеси на убиване. Можете обаче да зададете сигнала ръчно, както е показано в последния пример.

Метод 4: Използване на Handy One-Liners


Истинската красота на Linux се крие във факта, че той позволява на потребителите да създават сложни комбинации от команди, базирани на техните нужди. За да демонстрираме това, ние очертахме няколко еднолинейни в раздела.

$ nano> / dev / null &
$ kill -9 $ (pgrep nano) $ ps aux | grep -e 'nano' | awk 'print $ 2' | xargs убиват -9

В първия пример използвахме интерполация на черупката, за да предадем PID на процеса „nano“ на командата за убиване на Linux. Вторият пример използва няколко ежедневни команди на терминал и I / O пренасочване, за да убие процеса. Можете да подготвите вашите собствени изящни еднолинейни, след като се чувствате удобно с терминала на Linux.

Метод 5: Убийте множество процеси с помощта на Linux Shell Scripts


Понякога потребителите може да искат да прекратят повече от един процес. Ние можем лесно да автоматизираме такива задачи, като напишем прости скриптове на черупки. Ако се интересувате от тази тема, проверете предишното ни ръководство за Linux скриптове за черупки. Следният скрипт ще извлече PPID на процесите, които искате да убиете, и след това ще ги прекрати с помощта на сигнали за убиване.

$ nano proc-killer.ш
#!/ usr / bin / env bash за pro в "$ @" do pid = $ (pgrep $ pro | head -1) echo $ pid comm = "kill -9 $ pid" eval $ comm done

Сега запазете този файл и добавете разрешение за изпълнение, като издадете командата по-долу.

$ chmod + x proc-killer.ш

Вече можете да предадете на този скрипт името на процесите, които искате да прекратите.

$ ./ proc-killer.sh nano gedit vlc

Просто заменете аргументите с имената на неподходящите Linux процеси във вашата система.

Прекратяване на процес, който не реагира от GUI


Можете също така да прекратите процес, който не реагира, от графичния потребителски интерфейс или X прозореца. Ние обсъждаме два метода за това в следващия раздел.

Метод 1: Използване на приложението xkill


Съвременните дистрибуции на Linux използват графичния прозорец X, за да предоставят на потребителите елегантно графично изживяване. Има прост инструмент, наречен xkill, който позволява на потребителите да затворят неотговарящ GUI прозорец. Възможно е, тъй като в Linux прозорецът със заглавие на приложение е отделен от самото приложение.

Просто отидете на вашия емулатор на терминал на Linux и напишете xkill. Той ще превърне курсора на вашата мишка в бутон X, който може да се използва за убиване на всеки прозорец на GUI.

$ xkill

Всичко, което трябва да направите, е просто да щракнете върху лентата на прозореца на приложението, което не реагира, и то ще бъде унищожено и ще изчезне незабавно.

Метод 2: Използване на приложението System Monitor в Ubuntu


Повечето разпространени дистрибуции на Linux идват с някакъв вид инструменти за наблюдение на GUI, които позволяват на потребителите да прекратят графично обесен процес на Linux. Например приложението System Monitor на Ubuntu ще ни позволи да прекратим процес, който не реагира, по интуитивен начин. Можете просто да изберете мъртвия процес от списъка с процеси и да го убиете, като щракнете с десния бутон върху процеса и изберете опцията за убиване.

Има много повече алтернативи на това приложение и ние сме сигурни, че лесно можете да намерите такъв за вашата дистрибуция или работна среда.

Край на мислите


Тъй като управлението на процесите в Linux е много гъвкаво, потребителите често се разочароват, когато се занимават с неподходящи процеси. Ето защо нашите редактори описаха всички възможни начини за прекратяване на мъртъв процес на Linux в това ръководство. След като прочетете това, бихте могли да убиете всички неотговарящи процеси от командния ред или от GUI. Можете също така да използвате някоя от нашите еднолинейни команди за справяне с подобни неприятности в най-кратки срокове. Освен това можете дори да убиете повече от един процес, като използвате нашия прост скрипт за черупки. Затова се надяваме, че сте получили информацията, която сте търсили от нашия водач.

Как да обърнете посоката на превъртане на мишката и тъчпада в Windows 10
Мишка и Тъчпадs не само правят изчисленията лесни, но и по-ефективни и отнемат по-малко време. Не можем да си представим живот без тези устройства, но...
Как да промените курсора на мишката и размера на курсора, цвета и схемата в Windows 10
Показалецът на мишката и курсорът в Windows 10 са много важни аспекти на операционната система. Това може да се каже и за други операционни системи, т...
Безплатни и игри с отворен код за разработване на Linux игри
Тази статия ще обхване списък с безплатни двигатели за игри с отворен код, които могат да се използват за разработване на 2D и 3D игри на Linux. Същес...