завершення процесів у Linux

Кожна програма, утиліта або якийсь інший елемент операційної системи Linux реалізовується у вигляді одного або декількох процесів, які функціонують у фоновому або активному режимі. Кожен такий процес споживає певну кількість системних ресурсів і діє відведений проміжок часу. Іноді трапляються ситуації, що вимагають негайного завершення (&171; вбивства & 187;) такої операції, що пов'язано з непотрібністю її виконання або виникненням помилок. В рамках сьогоднішньої статті ми хочемо поговорити про методи здійснення цього завдання.

Типи сигналів для завершення процесів

Для початку торкнемося теми алгоритмів завершення процесів в дистрибутивах, заснованих на Linux. Дія системних засобів залежить від посилаються сигналів, які мають різні значення і змушують виконувати певну послідовність завдань. Нижче будуть представлені способи, де можна вказувати тип сигналу для &171;вбивства&187; операції, тому ми рекомендуємо вивчити їх все, щоб розібратися в правильності застосування.

  1. SIGINT &8212; стандартний сигнал, що використовується і в графічних оболонках. При його відправленні процес зберігає всі зміни, завершує виконувані дії і тільки потім відключається. Якщо ви працюєте через &171;Термінал&187; , використовуйте комбінацію клавіш Ctrl + C , щоб швидко &171;вбити&187; поточний процес.
  2. SIGQUIT &8212; практично не відрізняється від попереднього сигналу, але при його відправці програма вже сама вирішує, чи варто завершувати роботу. При цьому створюється дамп пам'яті, що може бути корисно певним користувачам. Це другий і останній сигнал, який можна надіслати комбінацією клавіш під час взаємодії з &171;терміналом&187; . Для цього використовується комбінація Ctrl + / .
  3. SIGHUP & 8212; використовується для розриву зв'язку з &171;терміналом&187; . Рекомендується задіяти цей сигнал, якщо потрібно перервати з'єднання з Інтернетом.
  4. SIGTERM &8212; відразу ж видаляє процес, але його дочірні опції продовжують виконуватися до повного завершення операцій, а після проводиться звільнення системних ресурсів.
  5. SIGKILL &8212; аналогічний попередньому сигнал, але при цьому залишилися дочірні завдання не припиняють своє функціонування.

Тепер Ви знаєте про всі доступні сигнали, що використовуються при &171;вбивстві&187; процесів в різних дистрибутивах Linux. Використовуйте їх разом з наведеними в методах нижче командами в якості аргументу.

Завершення процесів у Linux

Існують різні системні засоби, що дозволяють &171;вбити&187; який-небудь процес. Іноді для цього доводиться дізнаватися його ідентифікатор, а в інших ситуаціях досить тільки назви. Далі ми пропонуємо детально вивчити всі представлені методи, щоб знайти оптимальний для себе і виконувати його при необхідності, враховуючи описані раніше сигнали.

Спосіб 1:&171; Системний монітор & 187;

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

  1. Перейдіть до меню & 171; показати додатки & 187; , де відшукайте &171;Системний монітор&187; і запустіть його, клікнувши по значку лівою кнопкою миші.
  2. Запуск системного монитора в Linux для завершения процессов
  3. У вікні, що з'явиться, ви побачите список процесів. Знайдіть ім'я необхідної для завершення завдання.
  4. Поиск процессов через системный монитор в Linux
  5. Додатково ви можете переміститися в властивості об'єкта через контекстне меню, щоб подивитися всю інформацію про нього.
  6. Просмотр общий сведений о процессе через системный монитор в Linux
  7. Клацніть правою кнопкою миші по рядку і виберіть пункт & 171; завершити&187; . Це ж дія виконується через гарячу клавіш Ctrl + E . Ще внизу є кнопка, що дозволяє завершити процес без виклику контекстного меню.
  8. Завершение процессов через системный монитор в Linux
  9. Якщо ж операція не завершилася з яких-небудь причин, задійте опцію & 171; вбити & 187; .
  10. Принудительное убийство процесса через системный монитор в Linux
  11. Ознайомтеся з інформацією в попередженні та підтвердьте свої наміри.
  12. Подтверждение убийства процесса через системный монитор в Linux

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

Спосіб 2: команда kill

Для застосування команди kill буде потрібно знання PID (ідентифікатора процесу), оскільки саме так здійснюється застосування аргументів. У статті нижче ми детально описали операцію перегляду списку процесів для отримання різної інформації. Обов'язково ознайомтеся з нею перед виконанням наступної інструкції.

Детальніше: Перегляд списку процесів у Linux

Далі залишається тільки запустити&171; Термінал & 187; і задіяти згадану команду. Для початку вивчіть її простий синтаксис: kill-сигнал pid_процесу . Тепер давайте розглянемо приклад&171; вбивства & 187;.

  1. Відкрийте меню програм і запустіть & 171; Термінал&187; .
  2. Запуск Терминала для завершения процессов в Linux
  3. Введіть просту команду ps aux | grep name для отримання інформації про вказаний процес, де name &8212; ім'я бажаної програми.
  4. Команда для поиска идентификатора процесса при завершении через kill в Linux
  5. У відображеному результаті відшукайте головний PID і запам'ятайте його.
  6. Просмотр идентификатора процесса для завершения через kill в Linux
  7. Введіть kill PID для завершення процесу через сигнал SIGTERM . Замість PID вам потрібно написати визначений раніше номер ідентифікатора.
  8. Завершение процесса через терминальную команду kill в Linux
  9. Тепер ви можете використовувати знову ps aux | grep name , щоб перевірити, чи була завершена операція.
  10. Проверка завершения процесса через команду kill в Linux
  11. Те ж саме дію по&171; вбивства & 187; здійснюється і через інший аргумент шляхом введення kill -TERM .
  12. Использование сигналов при вводе команды kill в Linux
  13. Якщо наведені вище команди не принесли ніякого результату, потрібно позначити сигнал SIGKILL , вставивши команду kill -KILL .
  14. Принудительное убийство процесса через команду kill в Linux

Врахуйте, що деякі процеси запускаються від імені суперкористувача, відповідно, для їх завершення потрібні привілеї. Якщо при спробі введення kill Ви отримуєте інформацію & 171; відмовлено у доступі&187; , введіть перед основною командою sudo , щоб вийшло sudo kill .

Спосіб 3: Команда pkill

Наступна консольна утиліта називається pkill і є модернізованою версією попередньої команди. Тут все реалізовано точно за таким же образом, але замість PID від користувача потрібно вводити назву процесу.

  1. Для надсилання сигналу SIGTERM використовуйте pkill + назва процесу .
  2. Использование команды pkill в Linux для завершения процесса
  3. Після ви можете переконатися, що операція була успішно завершена.
  4. Проверка завершения процесса через команду pkill в Linux
  5. Задайте вручну тип сигналу, ввівши таку форму pkill -TERM ping , де -TERM &8212; необхідний сигнал.
  6. Использование сигналов для завершения процессов через команду pkill в Linux
  7. Використовуйте pgrep для визначення того, що процес більше не виконується, якщо ви не хочете задіяти ps
  8. Проверка дерева процессов при использовании pkill в Linux

Спосіб 4: команда killall

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

Использование команды killall в Linux для завершения всех процессов с одинаковым названием

Тепер Ви знаєте все про завершення процесів у Linux. Перед виконанням методів переконайтеся, що примусове &171;вбивство&187; не призведе до системних збоїв. Якщо ж жоден варіант не дозволив повністю позбутися від процесу, спробуйте просто перезавантажити комп'ютер або видалити софт, пов'язаний з цією опцією.

більше статей на цю тему: