Як знищити процеси за допомогою Linux

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

Як використовувати команду 'killall'

The killll команда вбиває всі процеси по імені. Це означає, що якщо у вас запущено три версії однієї програми, команда killall вбиває всі три.

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

Відкрийте термінал і введіть таку команду:

killall xviewer

Обидва екземпляри програми закриваються.

Вбийте точний процес

Команда killall може дати дивні результати. Якщо у вас назва команди довжина більше 15 символів, команда killall працює лише з першими 15 символами. Отже, якщо у вас є дві програми, які мають однакові перші 15 символів, обидві програми скасовуються, навіть якщо ви хочете вбити лише одну.

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

killall -e

Ігноруйте регістр під час знищення програм

Щоб переконатися, що команда killall ігнорує регістр імені програми, яку ви надаєте, скористайтеся такою командою:

killll -I
killall --ігнорувати регістр

Знищити всі програми в одній групі

Коли ви запускаєте таку команду, як наведена нижче, вона створює два процеси:

ps -ef | менше

Одна команда призначена для ps -ef частина, в якій перераховані всі запущені процеси у вашій системі, а вихідні дані передаються в файл менше команди. Обидві програми належать до однієї групи, тобто bash.

Щоб закрити обидві програми одночасно, виконайте таку команду:

killall -g

Наприклад, щоб знищити всі команди, що виконуються в оболонці bash, виконайте наступне:

killall -g bash

Щоб відобразити всі запущені групи, виконайте таку команду:

ps -g

Отримайте підтвердження перед знищенням програм

Очевидно, що команда killall є потужною командою, і ви не хочете випадково вбити неправильні процеси.

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

вбивати -і

Знищити процеси, які запущені протягом певного часу

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

Ви можете вбити команду таким чином:

killall -o h4

The ч у наведеній вище команді означає години — ця команда вбиває процеси, що працюють протягом чотирьох годин або довше.

Вкажіть будь-який з наступних часових етапів:

  • с: секунди
  • м: хвилини
  • ч: годин
  • d: дні
  • w: тижні
  • М: місяці
  • y: роки

Крім того, щоб знищити команди, які тільки почали виконуватися, використовуйте такий перемикач:

killall -y h4

Цього разу команда killall знищує всі програми, запущені менше ніж 4 години.

Не кажіть мені, коли процес не знищено

За замовчуванням, якщо ви спробуєте закрити програму, яка не працює, ви отримаєте таку помилку:

назва програми: процес не знайдено

Якщо ви не хочете, щоб вам повідомляли, що процес не знайдено, скористайтеся такою командою:

killall -q

Використання регулярних виразів

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

Щоб використовувати регулярний вираз, скористайтеся такою командою:

killll -r 

Знищення програм для певного користувача

Щоб знищити програму, що належить певному користувачеві, скористайтеся -u перемикач:

killall -u 

Пропустіть назву програми, щоб завершити всі процеси цього користувача.

Зачекайте, поки killll закінчиться

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

Виконайте таку команду:

killall -w

Якщо програма ніколи не вмирає, то killall також продовжує жити.