Як вбити процес за назвою в Linux

За допомогою цих команд Linux примусово припинити роботу процесів, які не працюють

Щоб пояснити значення «процесу» найпростішими словами, це те, що це запущений екземпляр будь-якої програми або програми у вашій системі. Ви можете одночасно запускати кілька програм, наприклад переглядати веб-сторінки, слухати музику на терміналі тощо. З цими програмами пов’язано багато фонових процесів, які запускаються користувачем.

Кожна програма або програма, яка працює у вашій системі, створює кілька процесів, пов’язаних з вашою окремою програмою. Іноді це може бути проблемою, і позбутися цих процесів є єдиним варіантом, який у вас є.

«Знищення» процесу — це один із корисних варіантів, який Linux надає вам, щоб зупинити поточні процеси, будь то процес на передньому плані чи фоновий процес. У цій статті ми розглянемо такі команди, як вбити, pkill і killll щоб примусово завершити будь-який процес у системі.

Навіщо вбивати процес?

Важливо зрозуміти концепцію знищення процесу, перш ніж рухатися далі в цьому підручнику. Вбивство може здатися дуже жорстоким способом вираження концепції, але образно це означає примусове припинення процесу.

Тепер, навіщо переривати або закривати поточний процес? Коли у фоновому режимі запущено кілька процесів, усі або деякі з них можуть працювати неправильно, що може призвести до неправильної роботи системи. Це затримує виконання ваших поточних завдань, оскільки несправний процес може заморозити вашу систему на деякий час.

Іноді вихід з усіх процесів, що погано працюють, здається єдиним варіантом відновлення нормальної роботи системи. Linux дозволяє вбити процес за допомогою pid або ім'я процесу.

Використання pgrep команда

Більшість користувачів Linux знайомі з grep команда. The pgrep команду можна використовувати в подібних рядках grep.

pgrep команда, коли використовується, відображає pid запущеного процесу, як зазначено в команді. Ця команда буде дуже корисною під час використання pkill команда.

Загальний синтаксис:

pgrep [параметри] [шаблон]

Важливі опції, доступні з pgrep команда

ВаріантОпис
-uсписок ідентифікатора процесу, що належить певному користувачеві
-cпідрахувати кількість процесів збігу
список лише імен процесів
список повного шляху імені процесу

Давайте продемонструємо використання pgrep команду на прикладі.

pgrep -u гаурав гном

Тут ми хочемо побачити pids процесу gnome, який належить користувачу gaurav. Варіант -u дозволяє перерахувати pids процесів, якими володіє певний користувач. У цьому випадку користувач gaurav.

Вихід:

gaurav@ubuntu:~$ pgrep -u gaurav gnome 1752 1755 1909 1922 2021 2576 4279 gaurav@ubuntu:~$

Коли ми рухаємося далі з цим підручником, pgrep Команда допоможе нам підтвердити, чи процес було припинено або все ще виконується.

Тепер перейдемо до pkill команду та її виконання.

Використання pkill команда

Ви можете використовувати pkill команду в Linux, щоб вбити процес за допомогою імені процесу. Навіть якщо ви не знаєте pid деякого процесу, навіть тоді ви можете вбити цей конкретний процес за допомогою pkill команда.

Під час використання процесів можна вказати повну або часткову назву pkill команда. Навіть якщо ви введете часткову назву процесу, pkill команда відповідатиме всім запущеним процесам із відповідним ім’ям, яке ви ввели в команді.

Синтаксис:

pkill [параметри][шаблон_назва_процесу] 

Приклад:

Давайте відобразимо процеси, які зараз виконуються за допомогою зверху команда. Ви також можете використовувати пс команда для переліку процесів.

зверху
вгору - 14:24:02 вгору 3:12, 1 користувач, середнє навантаження: 0,29, 0,48, 0,58 Завдання: всього 221, 1 біг, 172 сплячий, 0 зупинений, 1 зомбі % Cpu(s): 5,6 us, 1,0 sy , 0,0 ni, 92,9 id, 0,4 wa, 0,0 hi, 0,1 si, 0,0 st KiB Mem : 3928240 всього, 610456 безкоштовно, 2233152 використано, 1084632 buff/cache. 1187268 допомогло Mem ПІД КОРИСТУВАЧА ПР Н.І. ВИРТ РЕМ SHR S% CPU% MEM часу + команда 4077 Gaurav 20 0 3312128 673480 118360 S 19,6 17,1 15: 13,23 Web Content 3712 Gaurav 20 0 3953008 453544 116476 S 4,0 11,5 9: 28.39 MainThread 2010 Gaurav 20 0 4084232 111096 45024 S 1.7 2.8 3: 14,85 гном-оболонки кореня 20 тисяча сто дев'яносто-сім 0 1039612 33704 22988 S 1,0 0,9 3: 04,42 Xorg 1426 CouchDB 20 0 3772396 16908 2520 S 0,7 0,4 1: 50.83 beam.smp 3288 Gaurav 20 0 722 480 25048 18272 S 0,7 0,6 0: 06,84 гнома-terminal- 3915 Gaurav 20 0 2804900 231524 111228 S 0.7 5.9 0: 54.42 Web Content 4146 Gaurav 20 0 3017924 245304 120604 S 0.7 6.2 2: 01.21 Web Content 4417 Gaurav 20 0 2964208 234396 119160 S 0.7 6.0 0 :59,90 Веб-вміст 4860 gaurav 20 0 3066800 372920 132544 S 0,7 9,5 0:48,20 Веб-вміст 16007 gaurav 20 0 41944 3780 3116 R 3116 вгору . 

Використання зверху команда відобразить кілька процесів на вашому терміналі. Спробуємо відобразити процес під певною назвою. Ми будемо використовувати grep команда для відображення процесу, ім’я якого відповідає рядку «mongo».

верх | grep -i mongo

Примітка: Тут я використав параметр -i, щоб зробити пошук нечутливим до регістру.

Результат цієї команди відобразить процеси, що відповідають назві «mongo»

 1158 MongoDB 20 0 288564 4848 1320 S 0,7 0,1 1: 03,22 mongod 1158 MongoDB 20 0 288564 4848 1320 S 1,0 0,1 1: 03.25 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0,7 0,1 1: 03,27 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0,7 0,1 1: 03,29 mongod 1 158 MongoDB 20 0 288564 4848 1320 S 0,7 0,1 1: 03,31 mongod 1 158 MongoDB 20 0 288564 4848 1320 S 0,7 0,1 1: 03,33 mongod 1 158 MongoDB 20 0 288564 4848 1320 S 1,0 0,1 1: 03,36 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0,7 0,1 1: 03,38 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0,7 0,1 1: 03.40 mongod 1158 MongoDB 20 0 288564 4848 1320 S 1,0 0,1 1: 03,43 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0,7 0,1 1: 03,45 mongod 1158 MongoDB 20 0 288564 4848 1320 S 1,0 0,1 1: 03,48 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0,3 0,1 1: 03,49 mongod 1158 MongoDB 20 0 288564 4848 1320 S 1,0 0,1 1: 03,52 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0,7 0,1 1:03,54 mongod 1158 mongodb 20 0 288564 4848 1320 S 1,0 0,1 1:03,57 mongod

Тепер ми будемо використовувати pkill команду для припинення процесу під назвою «mongo».

pkill mongo

Ця команда тепер вбиває процес mongo. Ми можемо підтвердити, чи процес був змушений завершити, за допомогою pgrep команда, яка відображає pid запущеного процесу за критеріями, визначеними користувачем.

gaurav@ubuntu:~$ pgrep mongo gaurav@ubuntu:~$

Ця команда не поверне значення. Це підтверджує, що процес «mongo» тепер припинено за допомогою pkill команда.

Параметри, які часто використовуються з pkill команда

Під час використання pkill команди нам знадобляться згадані параметри для правильного та легкого використання pkill команда.

ПараметриОпис
-fвідповідність повним аргументам, включаючи пробіли, лапки, спеціальні символи
-uщоб повідомити процес pkill, щоб він відповідав процесу, який запускає вказаний користувач
-1перезавантажує процес
-9вбиває процес
-15витончено припиняє процес

Розглянемо ще один приклад pkill команда за допомогою -f варіант.

На даний момент на терміналі виконуються дві команди, як показано нижче.

ping bbc.com ping youtube.com

Обидва процеси ініціює пінг команда. Тепер припустимо, що ми хочемо завершити лише один процес «ping youtube.com», тоді ми повинні використовувати -f варіант з pkill команда, яка вбиває процес із певною назвою, включаючи пробіли та лапки з імені процесу.

Команда:

gaurav@ubuntu:~$ pkill -f "ping youtube.com" gaurav@ubuntu:~$ 

Результат:

gaurav@ubuntu:~$ ping youtube.com PING youtube.com (142.250.67.206) 56(84) байт даних. 64 байти з bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=1 ttl=117 time=30,9 мс 64 байти з bom12s08-in-f14.1e100.net : 1462.mpse (1462.mpse) =117 час=121 мс 64 байти з bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=206 ttl=117 час=86,5 мс 64 байти з bom12s08-in-f12.net (142.250.67.206): ): icmp_seq=207 ttl=117 time=105 мс Припинено gaurav@ubuntu:~$ 

Тут «пінг на youtube.com” процес тепер припинено, а “ping bbc.com” все ще працює на терміналі.

На випадок, якби ми використовували pkill ping команди, це вбило б обох пінг процесів, що небажано.

Сигнали, що використовуються з pkill команда

pkill змушує процес завершити роботу, надсилаючи цьому процесу певний сигнал. Є три можливі сигнали, які pkill команда може надіслати процесу залежно від команди, яку дає користувач.

Нижче наведено список доступних сигналів.

СигналСпецифікація
1(HUP)перезавантажує вказаний процес
9 (ВБИТИ)вбиває вказаний процес
15 (ТЕРМІН)плавно зупиняє або перериває вказаний процес

У цьому підручнику ми будемо в значній мірі покладатися на ВБИТИ сигнал. Давайте розглянемо кілька прикладів, щоб краще це зрозуміти.

Використання pgrep команда, щоб отримати pid відповідність імені apache.

gaurav@ubuntu:~$ pgrep apache 1218 10402 10403 gaurav@ubuntu:~$
pkill -вбити apache

АБО ви також можете використовувати команду з числами (наприклад, 1, 9, 15)

pkill -9 apache

Обидві команди, показані вище, вб'ють процес apache. Підтверджуючи за допомогою pgrep команда знову.

gaurav@ubuntu:~$ pgrep apache gaurav@ubuntu:~$

Як pgrep команда не повертає результатів, доводить, що процес apache було знищено.

Висновок

У цьому уроці ми дізналися про pkill і як вона використовується для знищення процесу за допомогою безпосередньо назви процесу. Ми також дізналися про pgrep команда, яка використовується для отримання ідентифікатора процесу, запущеного будь-яким конкретним користувачем. The pgrep Команда дозволяє нам перехресно перевірити, чи загинув процес.

Категорія: Linux