Linux: як вбити процес за допомогою термінальних команд

Linux: як вбити процес за допомогою термінальних команд

Уявіть собі: ви запустили програму, працюєте з нею, а через час вона перестає відповідати на запити і висне. Запустити повторно додаток неможливо через те, що її екземпляр ще висить у пам 'яті комп' ютера. Що робити в такому випадку? У першу чергу потрібно завершити роботу програми і видалити процес з пам 'яті.

Найбільш простий і універсальний спосіб вбити процес в Linux - це використання термінальних команд. Цей варіант буде працювати на будь-якому дистрибутиві Linux.


Процеси Linux

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

Всі процеси, що працюють у Linux, мають такі атрибути:

  1. PID - унікальний для кожного процесу ідентифікатор.
  2. PPID - ідентифікатор батьківського процесу.
  3. Ідентифікатор користувача, який запустив процес.
  4. Пріоритет.
  5. Стан процесу.

Кожен запущений процес знаходиться в одному зі станів:

  • "" Виконується "". Для позначення цього стану використовується літера R.
  • Процес, який запустив системну операцію, наприклад введення або вивід даних, і чекає коли завершиться її виконання, називається "Очікування". Позначається літерою S.
  • Процес, який зупинено користувачем або ОС Linux, знаходиться в стані "" Зупинено "". Цей стан позначається символом Т.
  • "" Зомбі "" - процеси, які більше не виконуються, але споживають ресурси операційної системи. Позначаються літерою Z.
  • Неперервний процес не можна завершити, поки не закінчиться операція прямого доступу в пам 'ять. Позначається процес символом D.

Пошук процесу

Перед тим як у Linux вбити процес, його потрібно спочатку знайти. Найчастіше для цієї мети в Linux використовують дві команди top і ps.

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

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

  • PID - унікальний номер процесу;
  • USER - логін користувача, який запустив цей процес;
  • PR - пріоритет процесу в даний момент часу;
  • NI - пріоритет присвоєні процесу командою NICE;
  • Стан цього процесу;
  • % CPU- скільки процесорного часу займає цей процес (у відсотках);
  • % MEM- обсяг оперативної пам 'яті, яку займає цей процес (у відсотках);
  • TIME + - скільки часу минуло з моменту запуску процесу;
  • COMMAND - програма, яка запустила процес.

Інформація, надана командою top, відображається за рівнем використовуваного процесорного часу (стовпчик% CPU). Користувач може змінити порядок впорядкування:


  • відсортувати процеси за обсягом займаної оперативної пам 'яті (стовпчик% MEM) потрібно натиснути комбінацію клавіш Shift + M;
  • відсортувати за номером процесу (стовпчик PID) можна за допомогою комбінації Shift + N;
  • відсортувати за часом роботи (стовпчик TIME +) - Shift + T.
  • повернутися до вихідного сортування за рівнем завантаження центрального процесора - натиснути комбінацію Shift + P.

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

За допомогою команди top можна отримати безліч необхідних відомостей, однак це не найзручніший спосіб отримання необхідної інформації про потрібний вам процес. Щоб не шукати потрібного процесу, можна скористатися командою ps і фільтрувати список за допомогою команди greep. Наприклад, якщо потрібно знайти всі процеси, пов 'язані з запущеним браузером Opera, можна ввести команду ps axu | grep Mozilla.

Команда ps має такі параметри:

  • a - показати процеси для всіх користувачів;
  • u - відобразити користувача, який є власником процесу;
  • x - показують процеси, не прив 'язані до терміналу. Цей параметр важливий для пошуку інформації про графічну програму.

За допомогою зв 'язки команд ps і grep можна отримати всю інформацію, необхідну для знищення залежної програми.

Інші способи пошуку процесу

Для пошуку PID процесу за його назвою існує команда pidof. Формат її використання наступний: pidof + назва програми. Наприклад, щоб знайти всі PID, що належать до Opera, потрібно ввести: pidof Opera.

У деяких випадках буває так, що програма завершила своє виконання, але не звільнила мережевий порт. Щоб отримати відомості, в даному випадку потрібно ввести команду fuser: fuser -vn tcp 80. Де 80 - це номер завислого порту. Після цього можна вбити процес Linux по порту.

Завершення процесу за допомогою команди kill

Після того як ви дізналися PID процесу і його ім 'я, можна приступити до операції завершення непотрібної програми. Для цього використовуються дві команди: kill - вбити процес id у Linux і killall - завершити виконання програми за назвою.

Структура команди kill: kill SIGNAL PID. Де SIGNAL - це сигнал, який слід надіслати, а PID - це ідентифікатор процесу.


Параметр SIGNAL завершення процесу дорівнює 9 (SIGKILL). Таким чином, щоб в Linux вбити процес по pid потрібно ввести в консолі команду: kill -9 9578. Де 9578 унікальний номер процесу.

Команда завершення процесу не єдина, яку можна надіслати за допомогою системної програми kill. За допомогою kill ви можете ввести команду kill -l, щоб отримати список всіх команд, які можна надіслати за допомогою kill.

Корисно також знати інші значення, які може приймати параметр SIGNAL. Наприклад, для перезавантаження залежної програми можна використовувати параметр HUP. Сигнал SIGTERM не перериває роботу програми миттєво, а дає час для коректного завершення роботи, тобто програма зберігає дані, закінчує своє виконання, і звільняє всі зайняті ресурси.

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

Якщо ви знаєте назву програми, яку бажаєте завершити, ви можете скористатися командою killall. Наприклад, щоб знищити всі процеси, що стосуються Opera, потрібно ввести команду: killall -9 Opera.

Правда, дана команда не завжди завершує процеси, що відносяться до знищуваної програми. Якщо після виконання вказаної команди ви введете комбінацію ps aux | grep Opera і побачите, що деякі процеси ще виконуються, найкраще завершити їх за допомогою системної програми kill.


У деяких випадках, щоб у Linux вбити процес, запущений іншим користувачем, можуть знадобитися права root. Тоді перед командою завершення процесу потрібно ввести команду sudo.

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